Así que tengo dos archivos, y si aparece una nueva línea en cualquiera de estos archivos, me gustaría recibir un mensaje instantáneo (preferiblemente jabber o gTalk) que contenga el contenido de esa línea. ¿Tienen alguna sugerencia para un demonio de Linux o algo que pueda hacer eso?
Si está registrando a través de syslog, Metalog tiene soporte para ejecutar un comando cada vez que se registra un mensaje que coincide con algún criterio. De lo contrario, puede usar tailfpara buscar nuevas líneas en un archivo de registro.
sendxmpp es un pequeño script perl para enviar mensajes XMPP (posiblemente ya esté disponible como un paquete para su distribución favorita)
Podrías unir esos dos con un script de shell sin demasiada dificultad. Para el caso del metalog, cree un script como este:
Divertidísimo. Acabo de encontrar sendxmpp y configuré algo como esto. Aunque no había oído hablar de tailf, gracias.
icco
Nota al margen: ¡En caso de problemas, verifique el comportamiento de amortiguación de su tubería! (Si lo hace grep, es probable que tenga que agregar --line-bufferedal encantamiento para que aparezcan los mensajes). Acabo de pasar una buena hora tratando de descubrir por qué los mensajes aparecieron al azar o no.
nadie
2
Hice ese pequeño script de Python. Puedes usarlo como punto de partida
import xmpp, os, time
login = 'Your.Login' # @gmail.com
pwd = 'YourPassword'
recipient = '[email protected]'
logfile = "/home/myself/test.log"
def sendmsg(text):
global login, pwd, recipient
cnx = xmpp.Client('gmail.com')
cnx.connect( server=('talk.google.com',5223) )
cnx.auth(login,pwd, 'botty')
cnx.send( xmpp.Message( recipient , text ) )
oldsize = newsize = os.path.getsize(logfile)
while True:
newsize = os.path.getsize(logfile)
if newsize != oldsize:
f = open(logfile)
f.seek(oldsize, os.SEEK_SET)
s = f.read()
if s[-1] == '\n':
sendmsg(s)
oldsize = f.tell()
f.close()
time.sleep(10)
Utilicé información en esa página para conectar xmpppy a Google Talk.
grep
, es probable que tenga que agregar--line-buffered
al encantamiento para que aparezcan los mensajes). Acabo de pasar una buena hora tratando de descubrir por qué los mensajes aparecieron al azar o no.Hice ese pequeño script de Python. Puedes usarlo como punto de partida
Utilicé información en esa página para conectar xmpppy a Google Talk.
fuente