自動以PING 測試電腦並在電腦當機時候自動寄發信件出去
說明:
要達到這樣的功能我分成兩個部分來做
1.偵測電腦是不是當機寫成一個shell,並產生要寄出信件的內容
2.寄出信件的部分寫成一個 shell
3.放到/etc/crontab 讓他定時間去偵測
1.自動去 PING 的方式如下:
#!/bin/bash
ADDRESS="192.168.1.1 tw.yahoo.com" #在這輸入妳要測試的主機可以是IP或者你申請的DNS
for ipadd in $ADDRESS
do
echo "$ipadd"
#顯示出來你輸入的IP或者DNS
ping -c 2 $ipadd | grep "ttl"
#PING的測試,成功會傳回 0失敗會傳回其他的值
NUMBER1="$(echo $?)" #取出傳回值,交給 IF判斷用
if [ $NUMBER1 == 0 ];
#如果值是0 ,代表機器是OK的
then
echo "ping $ipadd ok"
else
echo "ping $ipadd fail"
#如果是0以外的值代表機器有問題
date > /home/crash/fail.txt
#將日期輸入我們要傳送MAIL的檔案中
echo "SERVER IP : $ipadd FAIL "
>> /home/crash/fail.txt
#將SERVER的位置輸入我們要傳送MAIL的檔案中
/home/crash/mail_send.sh
#呼叫寄信的shell 寄出信件
fi
done
2.自動寄信的方法如下:
#!/bin/bash
MAIL="test1 test2 test3 " #在這邊填入寄信的帳號(@前面的),每個帳號以空白隔開
DOMAN1="my_domail1" #這邊要填入的就是寄信位置(@後面的)
DOMAN2="gmail.com" #這邊要填入的就是寄信位置(@後面的)
for db in $MAIL
do
cat /home/crash/fail.txt | mail -s "Server Fail" $db@$DOMAN1 #會將產生的檔案 fail.txt寄出去給上面輸入位置
cat /home/crash/fail.txt | mail -s "Server Fail" $db@$DOMAN2
done
3.將寫好的程式放入 /etc/crontab就可以了
舉例如下:
*/5 * * * * root /home/crash/all_ping_test.sh