logger. Общаемся с syslog из shell скриптов.
При разработке скриптов на разных скриптовых языках, проблем с отправкой записей на syslogd не возникает. Все современные скриптовые языки умеют общаться с syslogd. С помощью утилиты logger можно отправлять для записи в логи сообщения из shell скриптов.
К примеру создадим лог файл, который будет записывать в лог сообщения с тегом test в файл /var/log/test.log
Для этого в /etc/syslog.conf добавим такую конфигурацию:
!test *.* /var/log/test.log
Затем создадим /var/log/test.log:
touch /var/log/test.log
В большинстве бинарных программ в качестве тега используется имя исполняемого файла. У нас же, в shell скрипте, как такового имени бинаря не будет, и можно будет в качестве тега использовать имя скрипта.
После добавления изменения настроек syslogd, нужно его HUPнуть, что бы он перечитал конфигурацию:
killall -HUP syslogd
можно конечно и рестартануть syslogd:
/etc/rc.d/syslogd restart
Но тут нужно быть очень внимательным. Пр рестарте, есть вероятность, что несколько сообщений потеряется.
И теперь непосредственно подходим к отправке сообщения. Отправим сообщение TEST:
logger -t test "TEST"
и смотрим в /var/log/test.log:
less /var/log/test.log
Я увидел такое:
Oct 24 23:54:37 sh test: TEST
Ну и еще, если вы хотите фильтровать записи по приоритетам, то приоритеты указываются с помощью флага -p:
logger -p info -t test "TEST"
Ставить приоритеты удобно, ведь все сообщения с приоритетом err и crit попадают в /var/log/messages и если ваш скрипт будет слать сообщения о своей работе так, что они будут засорять messages, эффективность такого логгирования значительно снизится.
Комментариев нет
Комментариев нет.
RSS-лента комментариев к этой записи. TrackBack URI


