Ksh
如何擷取來自伺服器 ping 的響應並發送警報
我正在執行以下命令:
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
列印。)