Monitoring

用於檢測我的伺服器何時關閉或離線的 Bash 腳本

  • August 7, 2015

背景:當我的伺服器關閉時,我需要收到警報。當伺服器關閉時,Sysload 收集器可能無法發送任何警報。為了在伺服器關閉時接收警報,我有一個外部源(伺服器)來檢測它。

問題:有什麼方法(我更喜歡 bash 腳本)來檢測我的伺服器何時關閉或離線並發送警報消息(電子郵件 + SMS)?

如果你有一個單獨的伺服器來執行你的檢查腳本,這樣的事情會做一個簡單的 Ping 測試來查看伺服器是否還活著:

#!/bin/bash
SERVERIP=192.168.2.3
NOTIFYEMAIL=test@example.com

ping -c 3 $SERVERIP > /dev/null 2>&1
if [ $? -ne 0 ]
then
  # Use your favorite mailer here:
  mailx -s "Server $SERVERIP is down" -t "$NOTIFYEMAIL" < /dev/null 
fi

您可以 cron 腳本定期執行。

如果您沒有 mailx,則必須用您擁有的任何命令行電子郵件程序替換該行,並可能更改選項。如果您的運營商提供 SMS 電子郵件地址,您可以將電子郵件發送到該地址。例如,對於 AT&T,如果您向phonenumber @txt.att.net 發送電子郵件,它會將電子郵件發送到您的手機。

以下是發送至 SMS 網關的電子郵件列表:

http://en.wikipedia.org/wiki/List_of_SMS_gateways

如果您的伺服器是可公開訪問的網路伺服器,則有一些免費服務可以監控您的網站並在網站關閉時提醒您,請在網路上搜尋免費網站監控以找到一些。

引用自:https://unix.stackexchange.com/questions/56340