FreeBSD - logger - общение sh и syslogd

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Перейти к:навигация, поиск

Самые выгодные сервера? в рунете


FreeBSD - logger - общение sh и syslogd

При разработке скриптов на разных скриптовых языках, проблем с отправкой записей на syslogd не возникает. Все современные скриптовые языки умеют общаться с syslogd. С помощью утилиты logger можно отправлять для записи в логи сообщения из shell скриптов.
К примеру создадим лог файл, который будет записывать в лог сообщения с тегом test в файл /var/log/test.log Для этого в /etc/syslog.conf добавим такую конфигурацию:

!test
*.* /var/log/test.log

Затем создадим /var/log/test.log:

% :>  /var/log/test.log

В большинстве бинарных программ в качестве тега используется имя исполняемого файла. У нас же, в shell скрипте, как такового имени бинаря не будет, и можно будет в качестве тега использовать имя скрипта.
После добавления изменения настроек syslogd, нужно его HUPнуть, что бы он перечитал конфигурацию:

% killall -HUP syslogd

можно конечно и рестартануть syslogd:

% /etc/rc.d/syslogd restart

Но тут нужно быть очень внимательным. Пр рестарте, есть вероятность, что несколько сообщений потеряется.
И теперь непосредственно подходим к отправке сообщения. Отправим сообщение TEST:

% logger -t test "ETO v loge"

и смотрим в /var/log/test.log:

% cat /var/log/test.log
Nov 17 15:25:57 gx test: ETO v loge

Ну и еще, если вы хотите фильтровать записи по приоритетам, то приоритеты указываются с помощью флага -p:

% logger -p info -t test "TEST"

Ставить приоритеты удобно, ведь все сообщения с приоритетом err и crit попадают в /var/log/messages и если ваш скрипт будет слать сообщения о своей работе так, что они будут засорять messages, эффективность такого логгирования значительно снизится.