Возникла необходимость рассылать некоторые уведомления из Syslog-a на почту. К
сожалению такой функциональности по умолчанию в systlg не было. Порывшись в
интернете нашел два способа решения проблемы.
замена Syslog на Rsyslog с использованием модуля 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.
|