Excelente, revisare ese codigo. Saludos
El 28/03/11, Carlos Zuniga <carlos....@gmail.com> escribió: > 2011/3/27 Manuel Enrique González Ramírez <maeng...@gmail.com>: >> El 27 de marzo de 2011 16:01, Alfonso de la Guarda <alfons...@gmail.com> >> escribió: >>> >>> Hola, >>> >>> contenido es un objeto de tipo file, por ende puedes emplear read(), >>> readlines() , etc..... >>> >>> >>> >>> Saludos, >>> >>> -------------------------------- >>> Alfonso de la Guarda >>> Centro Open Source(COS) >>> http://www.cos-la.net >>> http://alfonsodg.net >>> Telef. 991935157 >>> 1024D/B23B24A4 >>> 5469 ED92 75A3 BBDB FD6B 58A5 54A1 851D B23B 24A4 >>> >>> >>> >>> 2011/3/27 Carlos Herrera Polo <carlos.herrerap...@gmail.com>: >>> > ---------- Forwarded message ---------- >>> > From: Carlos Herrera Polo <carlos.herrerap...@gmail.com> >>> > Date: Sun, 27 Mar 2011 22:58:54 +0200 >>> > Subject: Re: Lectura de archivos planos tipo logsurfer >>> > To: Alfonso de la Guarda <alfons...@gmail.com> >>> > >>> > Buena idea, no se me habia ocurrido usar tail. >>> > La variable "contenido" en el ejemplo que representa ? Una lista ? Un >>> > texto enorme con el resultado de tail ? >>> > >>> > El 27/03/11, Alfonso de la Guarda <alfons...@gmail.com> escribió: >>> >> Hola, >>> >> >>> >> Pues yo emplearía (tal como lo he hecho antes) popen (aunque desde 2.6 >>> >> ya es un método obsoleto) >>> >> >>> >> import os >>> >> contenido = os.popen("tail -n 50 /var/log/syslog") >>> >> print contenido.read() >>> >> if contenido.read() .,..... >>> >> >>> >> En tail cambia el 50 por la cantidad de líneas que quieras y >>> >> obviamente metelo en un loop (con pausa) o como una tarea programada >>> >> (cron) >> >> Y si al tail le agregas un grep para buscar algo en concreto te quedará >> más >> eficiente >> >> contenido = os.popen("tail -n 50 /var/log/syslog | grep -i >> 'error_a_buscar' >> ") >> >>> >>> >> >>> >> >>> >> Saludos, >>> >> >>> >> -------------------------------- >>> >> Alfonso de la Guarda >>> >> Centro Open Source(COS) >>> >> http://www.cos-la.net >>> >> http://alfonsodg.net >>> >> Telef. 991935157 >>> >> 1024D/B23B24A4 >>> >> 5469 ED92 75A3 BBDB FD6B 58A5 54A1 851D B23B 24A4 >>> >> >>> >> >>> >> >>> >> 2011/3/27 Carlos Herrera Polo <carlos.herrerap...@gmail.com>: >>> >>> Ilustres, quisiera tener su opinion al respecto.. >>> >>> >>> >>> Administro ciertos servidores linux, y consolido la informacion de >>> >>> los >>> >>> logs de estos en un unico servidor con el servicio syslog-ng, los >>> >>> logs >>> >>> son archivos planos que se almacenan en formato ASCII, un log por >>> >>> cada >>> >>> servicio/servicio. >>> >>> Quisiera desarrollar un programa simple que me alerte por correo de >>> >>> ciertos eventos que ocurren en los logs.... Existe un programa >>> >>> llamado >>> >>> logsurfer, escrito en C que hace esto... >>> >>> Mi idea es hacer un logsurfer pero en python, pero no se como >>> >>> trabajar >>> >>> la lectura de estos archivos planos que cada uno debe tener varios >>> >>> megas de peso, y son escritos cada segundo, ustedes como lo harian ? >>> >>> Porque hacer fileread por cada uno y luego irme hasta las ultimas >>> >>> filas como que no seria eficiente... >>> >>> > > Si la preocupación es que sea eficiente, no sería mejor usar solamente > python en lugar de abrir más procesos? > > Mira este algoritmo que implementa tail en python, es eficiente por > que comienza a buscar desde atrás, así que no lee el archivo completo > si no es necesario: > > http://stackoverflow.com/questions/136168/get-last-n-lines-of-a-file-with-python-similar-to-tail/136368#136368 > > Saludos > -- > Linux Registered User # 386081 > A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos > de leer manuales. > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Enviado desde mi dispositivo móvil _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/