shell死循环脚本示例

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

 

posted @ 2016-08-10 14:19  snale1989  阅读(1967)  评论(0编辑  收藏  举报