Возникла необходимость рассылать некоторые уведомления из 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.dev/tips/info/2793.shtml