Возникла необходимость рассылать некоторые уведомления из Syslog-a на почту. К сожалению такой функциональности по умолчанию в systlg не было. Порывшись в интернете нашел два способа решения проблемы.*** замена Syslog на [[http://www.rsyslog.com Rsyslog]] с использованием модуля [[http://www.rsyslog.com/doc/ommail.html ommail]]
*** Написание скрипта для крона, который будет отслеживать изменения в логах с дальнейшей отправкой.Ни один из методов не показался интересным, поэтому вернулся к руководству.
В руководстве наткнулся на следующее:
[]
The action field of each line specifies the action to be taken when the
selector field selects a message. There are five forms:
A vertical bar ("|"), followed by a command to pipe the selected messages to.
[]То есть, "можно перенаправить сообщение на команду".
В связи с чем появилась первая попыткаconsole.* |mail -s "info" "user@mail.net"
Закончившаяся фиаско, так как сообщения накапливались в буфере и отправка происходила только после рестарта самого сислога.
После чего было решено использовать простой скрипт
console.* /var/log/console.log
console.* |/home/user/toor/sysmail.shгде сам sysmail.sh
#!/usr/local/bin/bash
read data
echo $data | mail -s "info" "user@mail.net"В итоге получаем следующее.
События записываются в файл на системе и отсылаются на почту user@mail.net с темой info.URL:
Обсуждается: http://www.opennet.me/tips/info/2793.shtml
#!/usr/local/bin/bashСколько бздешников не учи все они полные пути пишут. Универсальные способы работающие везде не знают:
#!/usr/bin/env bash
Если он BSDшник, то надо так:
#!/bin/sh
В следующий раз напишу
C:\
Это от того, что ты сам не особо в теме, а других учишь. Выглядит это довольно глупо. Вот поэтому люди тебя и не слушают. Прошерсти современные дистрибутивы линукс на предмет использования env и поучи дистростроителей жить. О результатах не забудь написать сюда.
Субъективно при возникновении подобных хотелок действительно лучше сразу смотреть на rsyslog.На линуксе с не сильно древними coreutils для подкрутки буфера до строчного можно воспользоваться запуском mail(1) из-под stdbuf(1).
Не, сислог уже отстой, rsyslog рулит!cat /etc/rsyslog.d/sshd.conf
$ModLoad ommail
$ActionMailSMTPServer 127.0.0.1
$ActionMailFrom syslog@ibm.com
$ActionMailTo pavlinux@ibm.com
$template mailSubject,"SSH Login: %hostname%"
$template mailBody,"RSYSLOG Achtung!!!\r\n'%msg%'"
$ActionMailSubject mailSubject
$ActionExecOnlyOnceEveryInterval 60if $programname == 'sshd' then :ommail:;mailBody
#### Или в отдельный файл.
# if $programname == 'sshd' then /var/log/sshd.log
Ну, или syslog-ng
Под фрей не вариант:R-deps: eventlog-0.2.12 gettext-0.18.3 glib-2.36.3 libffi-3.0.13 libiconv-1.14_1 openssl-1.0.1_8 pcre-8.33 perl-5.14.4 python-2.7_1,2 python2-2_1 python27-2.7.5_3
Нравится идея ставить питон и перл на каждого хоста/гостя?