Мониторинг daemon’ов в FreeBSD


Tagged , , ,

После установленного knockd у меня возникла потребность отслеживать запущен он или нет, так как инет у меня работает через pppoe который при загрузке системы не сразу получает внутренний ip адресс. Поэтому knockd не запускается.
Написав несложный скрипт по проверке knockd в процессах и последующего запуска, если таковой отсутсвует, решил его немного универсализировать и проверять нужные мне демоны.
Некоторые могут сказать что уже есть программы в портах для этого, например monitord (/usr/ports/sysutils/monitord) или monit (/usr/ports/sysutils/monit), но у меня они не совсем устроили. Monitord постоянно пытается писать статусные сообщения в консоль в которой его запустили, меня это жутко раздражает. Monit имеет более богатый функционал, но он мне не нужен, мне надо просто следилку за демонами.
Сам скрипт monitd.sh:

#!/bin/sh

fileconf=»/usr/local/etc/monitd.conf»
logfile=»/var/log/monitd.log»

if [ -r «$fileconf» ]
then
daemons=`cat $fileconf`
else
echo «Error! Config file $fileconf not found»
exit 0
fi

for dmn in $daemons
do
DAEM=`$dmn status | grep pid`
if [ -z «$DAEM» ]
then
if [ ! -w «$logfile» ]
then
touch $logfile
fi
echo `date «+[%d.%m.%Y] %H:%M:%S»` : `$dmn start` >> /var/log/monitd.log
fi
DAEM=»»
done

пример конфиг файла /usr/local/etc/monitd.conf :
/usr/local/etc/rc.d/knockd
/usr/local/etc/rc.d/samba
/usr/local/etc/rc.d/apache22
/etc/rc.d/sshd

Все запущенные демоны можно посмотреть /var/log/monitd.log.
Естественно надо чтобы скрипт запускался от привилегированного пользователя. Осталось только пихнуть его в cron и благополучно забыть 🙂

*/15 * * * * root /bin/sh /root/monitd.sh

P.S. : Скрипт должен благополучно работать и в Linux. Надо только слегка подправить конфиг и сам скрипт.
Этот же скрипт, только сохранный в фаил : monitd.sh.txt
© Человек_Разумный

Мой блог находят по следующим фразам

Share:

1 comment

RSS / trackback

Respond

  1. Abaza

    on 20.01.2013 at 23:47

    Автору спасибо за скрипт! Скрипт как раз такой, какой я ленился написать сам 🙂 Особенно полезен для Samba, которая на некоторых серваках почему то не всегда заводится при перезагрузки системы.