Ich habe also zwei Dateien, und wenn in einer dieser Dateien eine neue Zeile angezeigt wird, möchte ich eine IM (vorzugsweise Jabber oder gTalk) erhalten, die den Inhalt dieser Zeile enthält. Habt ihr Vorschläge für einen Linux-Daemon oder etwas, das das könnte?
Wenn Sie über Syslog protokollieren, kann Metalog einen Befehl ausführen, wenn eine Nachricht protokolliert wird, die einem bestimmten Kriterium entspricht. Andernfalls können Sie tailfin einer Protokolldatei nach neuen Zeilen suchen.
sendxmpp ist ein kleines Perl-Skript zum Senden von XMPP-Nachrichten (möglicherweise bereits als Paket für Ihre Lieblingsdistribution verfügbar).
Sie können diese beiden ohne allzu große Schwierigkeiten mit einem Shell-Skript zusammenfügen. Erstellen Sie für den Metalog-Fall ein Skript wie das folgende:
Urkomisch. Ich habe gerade sendxmpp gefunden und so etwas eingerichtet. Hatte aber noch nichts von tailf gehört, danke.
icco
Randnotiz: Überprüfen Sie bei Problemen das Pufferverhalten Ihrer Pipe! (Wenn Sie es tun grep, müssen Sie wahrscheinlich --line-buffereddie Beschwörung hinzufügen , damit Nachrichten angezeigt werden.) Ich habe gerade eine gute Stunde damit verbracht, herauszufinden, warum Nachrichten willkürlich oder gar nicht angezeigt wurden.
niemand
2
Ich habe dieses kleine Python-Skript erstellt. Sie können es als Ausgangspunkt verwenden
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)
grep
, müssen Sie wahrscheinlich--line-buffered
die Beschwörung hinzufügen , damit Nachrichten angezeigt werden.) Ich habe gerade eine gute Stunde damit verbracht, herauszufinden, warum Nachrichten willkürlich oder gar nicht angezeigt wurden.Ich habe dieses kleine Python-Skript erstellt. Sie können es als Ausgangspunkt verwenden
Ich habe Informationen auf dieser Seite verwendet, um xmpppy mit Google Talk zu verbinden.
quelle