shell死迴圈指令碼示例

snale1989發表於2016-08-10

1、設計一個指令碼,監控遠端的一臺機器(假設ip為192.168.0.28)的存活狀態,當發現當機時發一封郵件給你自己。

提示:
1. 你可以使用ping命令   ping -c10 www.baidu.com
2. 發郵件的命令是  echo "郵件內容" |mail -s "主題" abc@qq.com
3. 指令碼可以搞成死迴圈,每隔30s檢測一次  

死迴圈語法:

    while true;do

           迴圈體

           if CONDITION;then

               break

            fi

     done

#! /bin/bash
 while true;do
     ping -10 3 192.168.0.28
     if [ $? -ne 0 ];then
          echo "192.168.0.28 down"| /bin/mailx -s "192.168.0.28 is down" 775356210@qq.com;
               break
     else sleep 30
  fi
done

 2、寫一個指令碼,判斷本機的80埠是否開啟著,如果開啟著什麼都不做,如果發現埠不存在,那麼重啟一下nginx服務,併發郵件通知你自己。指令碼寫好後,可以每一分鐘執行一次,也可以寫一個死迴圈的指令碼,30s檢測一次。

#! /bin/bash
while true;do
  i=`netstat -lntp|grep 80|grep nginx|wc -l`
  if [  -z $i ];then
    service nginx start && echo "service nginx has bean restart"|/bin/mailx -s "nginx restart" 775356210@qq.com
    break
  else sleep 30
 fi
done

 

相關文章