Итак, у меня есть два файла, и если в любом из этих файлов появится новая строка, я бы хотел получить IM (предпочтительно jabber или gTalk), содержащий содержимое этой строки. Ребята, у вас есть предложения по поводу демона Linux или чего-то такого, что могло бы сделать это?
Если вы ведете журнал через системный журнал, Metalog поддерживает выполнение команды всякий раз, когда в журнале регистрируется сообщение, соответствующее какому-либо критерию. В противном случае вы можете использовать tailfдля поиска новых строк в файле журнала.
sendxmpp - это небольшой Perl-скрипт для отправки сообщений XMPP (возможно, уже доступный в виде пакета для вашего любимого дистрибутива)
Вы можете сшить эти два вместе с помощью сценария оболочки без особых проблем. Для случая metalog создайте скрипт, подобный следующему:
Веселое. Я только что нашел sendxmpp и настроил что-то вроде этого. Хотя не слышал о хвосте, спасибо.
icco
Примечание: в случае проблем проверьте поведение буферизации вашей трубы! (Если вы думаете grep, вам, вероятно, придется добавить --line-bufferedв заклинание сообщения, которые будут отображаться.) Я потратил целый час, пытаясь выяснить, почему сообщения казались случайными или нет вообще.
никто не
2
Я сделал этот маленький скрипт на Python. Вы можете использовать его в качестве отправной точки
import xmpp, os, time
login = 'Your.Login' # @gmail.com
pwd = 'YourPassword'
recipient = 'YourFriend@gmail.com'
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)
Я использовал информацию на этой странице для подключения xmpppy к Google Talk.
grep
, вам, вероятно, придется добавить--line-buffered
в заклинание сообщения, которые будут отображаться.) Я потратил целый час, пытаясь выяснить, почему сообщения казались случайными или нет вообще.Я сделал этот маленький скрипт на Python. Вы можете использовать его в качестве отправной точки
Я использовал информацию на этой странице для подключения xmpppy к Google Talk.
источник