LOG DE SQUID EN PYTHON PARTE II

Continuando con el post anterior acerca del Log de Squid vamos ahora a seguir esta vez ya con codigo Python, anteriormente hablamos de una serie de pasos para lograr nuestro objetivo, los primeros pasos que haciamos eran los siguientes:

El script hace una conexión via ssh al servidor squid y realiza lo siguiente:

1- Detiene el el squid.

2- renombra el archivo *”/var/log/squid3/access.log”* por *access_fechahoy.log*.

3- Crea un nuevo archivo access.log.

4- Le da los permisos al nuevo archivo creado access.log.

5- Inicia de nuevo el servidor Squid.

6- Copiar el desde el pc Remoto el Archivo *access_fechahoy.log* al pc local,

Para poder realizar los pasos del 1 al 6 es necesario realizar una connexion SSH con python, yo utilice el Modulo Externo “paramiko ” , este modulo no esta en las librerias internas de Python por tal motivo es necesario instalarlo aparte, para el caso de debian se consigue simplemente haciendo como root un simple:

#aptitude install python-paramiko

Si no lo tienes puedes ubicarlo con easy_install o directamente de su pagina http://www.lag.net/paramiko/

Un Ejemplo en python seria el siguiente:

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

servidor = ‘192.168.1.104’

puerto = 22

usuario = ‘usuario_ssh’

clave = ‘clave_ssh’

try:

ssh.connect(servidor, port=puerto, username=usuario, password=clave)

except:

print ‘Conectado hacer algo’

Luego que ya hallamos establecido la conexion SSH procedemos a realizar los pasos 1 – 6

Para ejecutar comandos en el pc remoto via SSH se utiliza el metodo exec_command(‘comando’) , lo cual nos queria de la siguiente manera:

stdin, stdout, stderr = x.exec_command(‘/etc/init.d/squid3 stop’)

stdin, stdout, stderr = x.exec_command(‘mv %s %s’ % (‘acces.log’, ‘access_fechahoy.log’))

stdin, stdout, stderr = x.exec_command(‘echo > %s’ % (‘acces.log’))

stdin, stdout, stderr = x.exec_command(‘chown proxy:proxy %s’ % (‘accesd.log’))

stdin, stdout, stderr = x.exec_command(‘/etc/init.d/squid3 start’)

si al momento de ejecutar exec.command() genera un error este se guardara en

en la variable stderr y podemos ver el error de la manera siguiente

error = stderr.read()

print error

Si todo marcha bien entonces procedemos a copiar el log remoto al pc local para poder trabajarlo localmente, para copiar un archivo via ssh utilizamos el metodo open_sftp() se la siguiente manera:

ftp = ssh.open_sftp()

ftp.get(‘/var/log/squid3/access.log’, ‘access_fechahoy.log’)

ftp.close()

ssh.close()

Espero les pueda servir este post, continuaremos en otra oportunidad con mas de LOG DE SQUID EN PYTHON

y optimizar un poco el código hoy mostrado

Anuncios

~ por foxcarlos en enero 22, 2012.

Una respuesta to “LOG DE SQUID EN PYTHON PARTE II”

  1. Hola!
    Permíteme presentarme soy Norma administradora de un directorio de blogs, visité tu portal y está interesante, tienes temas muy buenos. Me encantaría poner un link de tu web en mis sitios y así mis visitas puedan visitarlo también. Si estás de acuerdo no dudes en escribirme
    mmaribelvidal@gmail.com
    Éxitos con tu blog.
    Saludos

    Maribel.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: