免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3096 | 回复: 5
打印 上一主题 下一主题

shell脚本发邮件间隔时间问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-09 15:11 |只看该作者 |倒序浏览
本帖最后由 luxinjun888 于 2012-05-09 15:17 编辑

大家好,现在有一个脚本,脚本用于keepalived内对real server检测,检测一个页面返回的状态是否是OK,如果不是OK就记录错误,当报警超过3次就邮件报警(wget那里),现在我希望在第一次发邮件报警后,每隔5分钟后再次发邮件报警,邮件间隔时间怎么添加呢,小弟不才,谢谢指导一下:
#!/bin/bash
ip=$1
date=`date +%Y%m%d-%H:%M`
vod="http://$ip/tools/vod_health.php"
stat=`curl $vod`
if [ "$stat" == "OK" ]; then
   echo "OK" > /root/$1_error.txt
else
  echo "voderror" >> /root/$1_error.txt
fi

er=`awk '{ print NR }' /root/$1_error.txt | wc -l`

if [ $er -ge 3 ];then
     wget --post-data="to=luxinjun888&subject=error&body=$1_error,please check!!!" http://211.101.40.131/mail/sendmail.php
fi
exit 0

论坛徽章:
0
2 [报告]
发表于 2012-05-09 16:04 |只看该作者
希望下面的代码对你有帮助
  1. while true
  2. do
  3.         sleep 300
  4.         if [ 还是有故障 ]
  5.         then
  6.                 报警
  7.         else
  8.                 恢复正常
  9.                 exit
  10.         fi
  11. done
复制代码

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
3 [报告]
发表于 2012-05-09 19:23 |只看该作者
if判断中,Wget post 邮件后,输出当前时间去另一个文件。

再加个判断,如果该文件纪录最后的时间与当前时间少于5分钟,跳过不发邮件

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
4 [报告]
发表于 2012-05-10 09:01 |只看该作者
需要GNU date 支持。将下面的代码和你自己的合起来。
  1. t1=$(date -d "-5 minutes" +%Y%d%m%H%M)
  2. now=$(date +%Y%d%m%H%M)

  3. t2=$(ls lock*|cut -d . -f2)

  4. if [ ${t1} -lt ${t2} ]; then
  5.       exit
  6. fi

  7. if [ $er -ge 3 ];then
  8.      wget --post-data="to=luxinjun888&subject=error&body=$1_error,please check!!!" http://211.101.40.131/mail/sendmail.php
  9.      rm -f lock.*
  10.      touch lock.$now
  11. fi
复制代码

论坛徽章:
0
5 [报告]
发表于 2016-03-04 16:47 |只看该作者
各位前辈,本人想请教一个问题,下面是runTest.sh程序,但提示说有错误:args: should be "for start test next command",我不知道错在哪里了。

#!/bin/sh
#this shell script run smac.tcl under diffrent seeds and cbr interval
for i in `seq 1 12`
    do
            for j in `seq 1 15`
                    do
                            ns smac.tcl -seed $i -interval $j
                done
done

论坛徽章:
0
6 [报告]
发表于 2016-03-04 20:59 |只看该作者
这个问题已解决,原来是格式问题,需要把windows改成UNIX格式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP