Цель: произвести проверку запущены или нет необходимые нам сервисы.
# Первым делом, составляем список процессов, которые мы будем мониторить
daemons=( crond memcached nginx php-fpm sshd proftpd posix )
scripts=(
"/etc/init.d/crond start"
"/etc/init.d/memcached start"
"/etc/init.d/nginx start"
"/etc/init.d/php-fpm start"
"/etc/init.d/sshd start"
"/etc/init.d/proftpd start"
"/etc/init.d/posix start"
)
# получаем длину массива
dlen=${#daemons[@]}
# организовываем цикл по массиву daemons
for (( i=0; i<${dlen}; i++ ));
do
// в переменную checkrez загоняем результат проверки наличия сервиса
checkrez=`ps -A|grep ${daemons[$i]}|wc -l`
// если $checkrez значение равно нулю - значит процесс отсутсвует
// отсылаем уведомление попытаемся запустить соответсвующей командой из массива $scripts
if [ $checkrez -eq 0 ]; then
echo "${daemons[$i]} не обнаружен в запущенных процессах\n">>$mailfile
if [ ${scripts[$i]} -ne "" ]; then
`${scripts[$i]}`
checkrez=`ps -A|grep ${daemons[$i]}|wc -l`
if [ $checkrez -eq 0 ]; then
echo "ВНИМАНИЕ!!! ${daemons[$i]} не смогли перезапустить! Требуется ручное вмешательство\n===================\n">>$mailfile
else
echo "$mailbody\nНо ${daemons[$i]} успешно запустили заново.n===================\n">>$mailfile
fi
fi
fi
done