>а кодом скрипта не поделишься?
Я под линукс написал скрипт под названием demons, который вызываю из cron с периодичностью в 5 минут для мониторинга необходимых демонов.
Вот собственно скрипт:
#!/bin/bash
#
# Автор: MAD TROLL
# Дата: 01/01/2004
# Назначение: Скрипт для проверки/запуска необходимых демонов
# Использование: demons [check]
# Примечание: Без аргумента скрипт просто показывает состояние
LOG=/var/log/demons.log
# функция проверки работы демонов
alive () {
SCRIPT=$1
if [ -z $2 ]; then ARGUMENT="status"
else ARGUMENT=$2
fi
printf "\n*** $SCRIPT\n";
$SCRIPT $ARGUMENT
if [ "x$CHECK" = "x1" ]; then
let STATUS="`$SCRIPT $ARGUMENT | grep -c выполняется`"
if [ "x$STATUS" = "x0" ]; then
$SCRIPT restart
if [ "x$?" = "x0" ]; then RETVAL="UP"
else RETVAL="UP FAILED"
fi
echo `date +%d`'/'`date +%m`'/'`date +%Y`' '`date +%H`':'`date +%M`'.'`date +%S` $SCRIPT $RETVAL >> $LOG
fi
fi
return
}
# отсюда пошло тело скрипта
if [ -z $1 ]; then CHECK="0"
else CHECK="1"
fi
if [ "x$CHECK" = "x0" ]; then
w
printf "\n*** HDD free space\n";
df -h | grep -w /
fi
alive /etc/init.d/named mystatus # добавил свою функцию контроля статуса
alive /etc/init.d/sshd
alive /etc/init.d/pptpd
alive /etc/init.d/sendmail
alive /etc/init.d/httpd
alive /etc/init.d/mysqld
alive /etc/init.d/radiusd
alive /etc/init.d/squid
alive /etc/init.d/ichatsrvd
alive /etc/init.d/smb
[ `ifconfig | grep -c gre1` -ne 0 ] && {
alive /etc/init.d/globax
[ "x$CHECK" = "x1" ] && /usr/local/scripts/globax-check
}
if [ "x$CHECK" = "x0" ]; then ps axw | grep pptpd
fi
if [ "x$CHECK" = "x0" ]; then
printf "\n*** /usr/local/sbin/ulogd\n";
ps axw | grep ulogd
printf "\n ";
ps -ux | awk '{if ($3 > 20) {print "*** Съели процессорное время: ***\nProcess \t\t" "PID" "\t" "CPU" "\n" $11 "\t" $2 "\t" $3 "\n"}}'
printf "";
ps -ux | awk '{if ($4 > 20) {print "*** Съели память: *** \nProcess \t\t" "PID" "\t" "MEM" "\n" $11 "\t" $2 "\t" $4 "\n"}}'
printf "\n";
fi
#конец скрипта
--------------
1)Скрипт не претендует на совершенность и любые замечания и предложения будут приветствоваться.
2)Существующие недостатки: так например скрипт пока не справляется с ситуацией "подвисания" mysql, т.е. ситуации, когда с точки зрения контроля процессов все ок, но сама СУБД неходится в состоянии "штопора" и не может обслуживать БД... это есть грустно, но универсального подхода нет, по этому буду дорабатывать контроль юзабельности баз данных mysql отдельно.