我已經做了下面的腳本通過cron猛砸ping狀態腳本
HOSTS="ns1.server.com ns2.server.com"
SUBJECT="Host Down"
for myHost in $HOSTS
do
count=$(ping -c 10 $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{
print $1 }')
if [ $count -eq 0 ]; then
echo "Host : $myHost is down (ping failed) at $(date)" | sendEmail -f email (email address removed) -u "$SUBJECT" etc etc
fi
done
運行每5分鐘然而,當一臺主機宕機,我會接受並每5分鐘反映此電子郵件。我想要的是添加該功能,以便它只在狀態發生變化時通過電子郵件發送給我。即如果它關閉,我不希望它發送任何進一步的更新,直到它啓動。
什麼地方保存先前的結果(在文件中),並與比較當前結果? – fedorqui
是的,這就是我想要做的,但不知道如何編寫它 – Lurch
你可以使用兩個文件:'活着'和'下'。然後,例如,如果它已關閉,現在您檢測到它再次關閉,請檢查該名稱是否在「down」文件中。 – fedorqui