我們有一個郵件服務器正在死亡,並且正在將帳戶在退役之前遷移到新服務器。通過超過25個域名的超過800個電子郵件帳戶,重要的是這臺機器保持運行直到遷移完成。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已經工作得很好,每6小時一次cronjob(是的服務器是搞砸了,我們需要檢查它),這是關於amavis我不確定的部分。
要監視的服務,你應該使用'monit'如果失敗http://mmonit.com/monit/ – Satish