Foros del Web » Programando para Internet » Python »

Daemon en Python

Estas en el tema de Daemon en Python en el foro de Python en Foros del Web. buenas tengo un código en python que me lee un log de sistema y lo escribe en otro... como puedo hacer para que el lo ...
  #1 (permalink)  
Antiguo 01/11/2012, 15:08
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 12 años, 2 meses
Puntos: 0
Daemon en Python

buenas tengo un código en python que me lee un log de sistema y lo escribe en otro... como puedo hacer para que el lo lea constante mente y si hay algo nuevo lo escriba en el otro log... gracias

Aqui dejo el código sobre el cuando ando trabajando....
Código Python:
Ver original
  1. archi=open('daemon_log.log','a')            #abrir o crear log
  2. archi.write('--------------------------------Reporte debug log----------------------------------------\n')      #Escribir en log
  3.  
  4. archi2=open('/var/log/debug','r')   #buscar log
  5. linea=archi2.readline()             #leer log
  6.  
  7. while linea!='':                    #for que recorre log
  8.     #print linea                    #mostrar log en consola
  9.     archi.write(linea)              #introduir al log datos.log las lineas del log
  10.     linea=archi2.readline()         #leer y tener cuando el
  11. archi2.close()                      #cerrar el log error.log
  12. archi.write('\n')
  13.  
  14. archi.close()                       #cerrar el log datos.log
  #2 (permalink)  
Antiguo 01/11/2012, 15:16
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Daemon en Python

Tienes varias opciones:

1.- Crear una referencia a ese archivo (ejemplo: un link simbolico, no sirve si quieres replicar los datos)
2.- Poner tu script en un crobjob.

Nota: Tu script tiene un problema y es que repetí información en muchos lados.

Ejemplo imagina:
Código:
# LOG FUENTE: (primera vez)
A
B
C

# LOG DESTINO (primera vez)
A
B
C

# LOG FUENTE: (segunda vez)
A
B
C
D

# LOG DESTINO: (segunda vez)
A
B
C
A
B
C
D
Así sucesivamente.
  #3 (permalink)  
Antiguo 01/11/2012, 15:28
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Daemon en Python

mmmmmm.... Un pregunta no se podría hacer con un for que lea el archivo y que cuando algo nuevo sea escrito el lo mande a la daemon_log.log ...?
  #4 (permalink)  
Antiguo 01/11/2012, 15:35
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 10 meses
Puntos: 35
Respuesta: Daemon en Python

Dejo mi humilde respuesta... es como yo hubiera resuelto el programa según lo que planteas al principio.

Código Python:
Ver original
  1. a = open("logs1", "r") # Solo vamos a leer el archivo
  2. b = open("logs2", "r+") # Leer y escribir en el archivo
  3.  
  4. a_old_data, b_data = a.read(), b.read()
  5.  
  6. # Para volver a leer el archivo desde el comienzo
  7. a.seek(0)
  8.  
  9. while True:
  10.     try:
  11.         a_new_data = a.read()
  12.         a.seek(0)
  13.        
  14.         if a_old_data != a_new_data:
  15.             b.seek(0)
  16.             b.write(a_new_data)
  17.             b.seek(0)
  18.             b_data = b.read()
  19.             a_old_data = a_new_data
  20.             print "Nuevos datos agregados al archivo."
  21.            
  22.     except KeyboardInterrupt:
  23.         a.close()
  24.         b.close()
  25.         print "Terminado."

Recuerda cambiar el nombre de los archivos.

  #5 (permalink)  
Antiguo 02/11/2012, 13:57
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Daemon en Python

muchas gracias amigo por su respuesta me ah ayudado mucho... pero tengo otro pregunta XD.. es que este codigo que me paso utiliza 100% de un CPU mientras se ejecuta... como puedo hacer para que sea 1% o menos mientras lee la variable... es que como necesito implementarlo en el sistema.. no puede consumir tanto Y_Y
  #6 (permalink)  
Antiguo 02/11/2012, 14:01
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: Daemon en Python

Creo que tienes que definir el tiempo entre cada ejecución, si lo pones dentro del while pasa eso mismo que comentas. No te sirve un cron?

Saludos
__________________
Grupo Telegram Docker en Español
  #7 (permalink)  
Antiguo 02/11/2012, 14:13
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Daemon en Python

con cron??? no hay algun manual que me puede facilitar para leer como se hace... GRacias....
  #8 (permalink)  
Antiguo 02/11/2012, 14:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Daemon en Python

Cron job Unix

Etiquetas: daemon
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:22.