У нас есть почтовый сервер, который умирает и находится в процессе переноса учетных записей на новый сервер перед выводом из эксплуатации. Имея более 800 учетных записей электронной почты в более чем 25 доменах, важно, чтобы эта машина оставалась в рабочем состоянии до завершения миграции.
В последнее время он начал заполняться журналами ошибок, которые замораживают mysql из-за нехватки места, останавливают поток почты и вообще вызывают у меня головную боль. Пока не будет найдена и исправлена основная проблема ошибок, я придумал скрипт для проверки, работают ли Dovecot и Amavis-new, и если нет, перезапускает их.
После прочтения: https://stackoverflow.com/a/7096003/4820993
Помимо нескольких других распространенных примеров, я придумал это.
netstat -an|grep -ce ':993.*LISTEN' >/dev/null 2>&1
if [ $? = 0 ]
then
echo 'Dovecot is up';
else
echo 'Dovecot is down, restarting...';
/etc/init.d/dovecot restart
logger -p mail.info dovecot_keepalive: Dovecot is down, restarting...
fi
/etc/init.d/amavis status |grep -ce 'running' >/dev/null 2>&1
if [ $? = 0 ]
then
echo 'AmavisD is up';
else
echo 'AmavisD is down, restarting...';
/etc/init.d/amavis restart
sleep 2
/etc/init.d/amavis status |grep -ce 'running' >/dev/null 2>&1
if [ $? = 1 ]
then
echo 'AmavisD had a problem restarting, trying to fix it now...';
logger -p mail.info amavis_keepalive: AmavisD had a problem restarting...
output=$(ps aux|grep a\[m\]avisd)
set -- $output
pid=$2
kill $pid
rm /var/run/amavis/amavisd.pid
/etc/init.d/amavis start
else
echo 'AmavisD restarted successfully';
logger -p mail.info amavis_keepalive: AmavisD is down, restarting...
fi
fi
Кто знает, возможно, я усложняю себе задачу, и если это так, ПОЖАЛУЙСТА, ДАЙТЕ МНЕ ЗНАТЬ!!!
Я проверил его по http://www.shellcheck.net и обновил/исправил в соответствии с отчетами об отладке. Я собираю это по кусочкам из других примеров и хотел бы, чтобы кто-нибудь вычитал это, прежде чем я его реализую.
Первая часть, проверяющая dovecot, уже работает просто отлично, как cronjob каждые 6 часов (да, сервер так испорчен, что нам нужно его проверить), это раздел об amavis, в котором я не уверен.
monit
, который в случае сбоя перезапустит службу mmonit.com/monit. - person Satish   schedule 22.04.2015