求助!Linux下監控網路連線的script

需求如下:

求助!Linux下監控網路連線的script,利用ping指令來判斷網路是否正常連線,若是時間範圍內time out幾次後就判斷為斷線,然後發送email給網路管理員.以上需求,懇請各位linux達人協助.

Update:

感謝AYO 阿佑大師解答,那再請問網路恢復連線後通知管理員的script又要怎麼寫?

Update 2:

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

Rating
  • 1 decade ago
    Favorite 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): 自己+業界多年經驗+電腦週邊急救團, 自己+業界多年經驗, 自己+業界多年經驗, 自己+業界多年經驗
  • Anonymous
    5 years ago

    到下面的網址看看吧

    ▶▶http://*****

Still have questions? Get your answers by asking now.