У нас есть почтовый сервер, который умирает и в процессе переноса учетных записей на новый сервер перед снятием с эксплуатации. Благодаря 800 + учетным записям электронной почты в 25+ доменах важно, чтобы этот компьютер оставался до завершения миграции.Сценарий перезапуска Dovecot/Amavis (незавершенное производство)
В последнее время он начал заполнять журналы ошибок, которые замораживают 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', который будет перезагружен службы, если не удалось http://mmonit.com/monit/ – Satish