求助!Linux下監控網路連線的script
需求如下:
求助!Linux下監控網路連線的script,利用ping指令來判斷網路是否正常連線,若是時間範圍內time out幾次後就判斷為斷線,然後發送email給網路管理員.以上需求,懇請各位linux達人協助.
感謝AYO 阿佑大師解答,那再請問網路恢復連線後通知管理員的script又要怎麼寫?
AYO 阿佑大師的script執行結果如下,似乎不成功,殘念....
[root@mail ~]# ./001.sh
Usage: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline]
[-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
./001.sh: line 3: [: -ge: unary operator expected
OK
[root@mail ~]#
2 Answers
- AYO 阿佑Lv 71 decade agoFavorite Answer
您好,誠摯的來回答您的問題 :
程式方面,請參照 以下 :
#!/bin/bash
CHOSE=`ping -c 5 $1 |grep out |uniq -c |awk '{print $1}'`
if [ $CHOSE -ge 3 ]
then
mail -s ERROR yourself@yourself.domain -v <ERROR
else
echo 'OK'
fi
請把此程式 存成 假設 001.sh,
使用方式 ./001.sh [檢測IP]
會自動 ping 5 次,當超過 或者 等於 3 次,
是 Request timed out.
就會自動寄信給 yourself@yourself.domain(當然您得自己改這個 E-mail),
如果沒有,
則回報 OK
以上 AYO 阿佑
2010-01-11 15:44:41 補充:
囧~~~
不是 在下的 shell script 有寫錯,是您沒有帶參數進去呀!!
在上文當中有說明,
使用方法 : ./001.sh [檢測IP]
範例 : ./001.sh 127.0.0.1
shell script 後面要帶 您 要檢測的 IP 呀!!
程式這樣寫,當然是因為
A. 您沒有提供 IP
B. 這樣程式也比較靈活,可以使用在多個 IP 上
以上 AYO 阿佑
2010-01-11 15:47:38 補充:
那再請問網路恢復連線後通知管理員的script又要怎麼寫?
囧~~
上文當中的程式 反過來即可囉!!
#!/bin/bash
CHOSE=`ping -c 5 $1 |grep ttl |uniq -c |awk '{print $1}'`
if [ $CHOSE -ge 5 ]
then
mail -s Mail_OK yourself@yourself.domain -v
2010-01-11 15:47:41 補充:
只是把關鍵參數逆轉,就可以囉!!
上述這個新的程式,是說 ping 5 次 目標 IP,
當 目標 IP 回應 ttl 5 次,表示 OK,會寄一封信給您表示 OK
以上 AYO 阿佑
Source(s): 自己+業界多年經驗+電腦週邊急救團, 自己+業界多年經驗, 自己+業界多年經驗, 自己+業界多年經驗