Ksh

如何擷取來自伺服器 ping 的響應並發送警報

  • January 21, 2020

我正在執行以下命令:

ping ldap.corp.XXXXX.com

LDAP 伺服器啟動:

Pinging ldapeu.corp.XXXXX.com [XX.XXX.XXX.XX] with 32 bytes of data:
Reply from XX.XXX.XXX.XX: bytes=32 time<1ms TTL=252

LDAP 伺服器關閉:

ping: ldap.corp.XXXXX.com: Name or service not known

如何在 KSH 文件中實現程式碼以辨識 LDAP 伺服器何時關閉?

ping根據成功程度返回不同的退出程式碼。ping 的多種實現可能會略有不同,但引用它們的聯機幫助頁之一

如果ping根本沒有收到任何回複數據包,它將以程式碼 1 退出。如果同時指定了數據包計數截止時間,並且在**截止時間到達時收到的數據包少於計數,它也會以程式碼 1 退出。在其他錯誤中,它以程式碼 2 退出。否則,它以程式碼 0 退出。這使得可以使用退出程式碼來查看主機是否處於活動狀態。

除了 0 表示成功和非 0 表示失敗之外,您的 ping 可能使用不同的值;你可以echo $?在它執行後檢查。

還有其他fping用於監控的 ping 程序(例如 )。

所以你可以做一些簡單的事情:

if ping -c 2 ldapeu.corp.XXXXX.com ; then
   echo up
else
   echo down
fi

(你可以使用類似的東西if ping … >/dev/null 2>/dev/null; then來擺脫所有的消息ping列印。)

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