Bash
用於檢查主機可用性的 Bash ping 腳本文件
我正在嘗試在一個文件中編寫一個 bash 腳本,當執行時開始 ping 主機直到它可用,當主機變得可訪問時,它執行命令並停止執行,我嘗試編寫一個但腳本繼續 ping 直到計數結束,
另外,我需要將該程序置於後台,但如果我使用美元 (
$
) 符號執行腳本,它仍會在前台執行,#!/bin/bash ping -c30 -i3 192.168.137.163 if [ $? -eq 0 ] then /root/scripts/test1.sh exit 0 else echo “fail” fi
我會用這個,一個簡單的單行:
while ! ping -c1 HOSTNAME &>/dev/null; do echo "Ping Fail - `date`"; done ; echo "Host Found - `date`" ; /root/scripts/test1.sh
替換
HOSTNAME
為您嘗試 ping 的主機。我錯過了把它放在後台的部分,把那行放在一個 shellscript 中,如下所示:
#!/bin/sh while ! ping -c1 $1 &>/dev/null do echo "Ping Fail - `date`" done echo "Host Found - `date`" /root/scripts/test1.sh
在後台執行它,你會像這樣執行它:
nohup ./networktest.sh HOSTNAME > /tmp/networktest.out 2>&1 &
再次替換
HOSTNAME
為您嘗試 ping 的主機。在這種方法中,您將主機名作為參數傳遞給 shellscript。就像一般警告一樣,如果您的主機停止執行,您將在後台連續 ping 該腳本,直到您殺死它或找到主機。所以當你執行它時,我會記住這一點。因為如果你忘記了這一點,你最終可能會吃掉系統資源。