一个关于程序死掉发送邮件的脚本

    最近我们的程序总会出现没有任何报错就会停止工作,也没有日志输出了。

    所以今天针对没有日志输出这个问题写了个shell脚本来监控程序,当程序没有日志输出的时候就给运维人员发送邮件。

    环境是centos7,tomcat7,jdk1.7。

   一  首先配置mail

   1.安装mail
      yum -y install mailx
   2.调整配置文件
     vi /etc/mail.rc
     在最后两行增加如下语句
     set from=abc@qq.com smtp=smtp.exmail.qq.com
     set smtp-auth-user=abc@nstc.com.cn smtp-auth-password=xxxxx smtp-auth=login
     其中smtp=smtp.exmail.qq.com 要根据直接情况调整
   3.是用命令发送邮件
     例如给abc@qq.com.cn发送主题test内容为hello world的邮件
     echo "hello world" |mail -s test abc@qq.com

  二  编写shell脚本内容如下

    vi check.sh

    #!/bin/bash
   CPATH=/root/abc
   SPATH=/root
   while [ ! -e $SPATH/filesize.txt ];do
      touch $SPATH/filesize.txt
      echo 0 >$SPATH/filesize.txt
   done
   a=`ls -l $CPATH/* |awk '{sum+=$5}END{print sum}'`
   b=`cat $SPATH/filesize.txt`
   if [ "$a" -eq "$b" ]
   then
    echo "bp-server is down" |mail -s warnning abc@qq.com
    sed -i '/check.sh/s/\*\/30/#\*\/30/g' /var/spool/cron/root
   fi
   echo $a > $SPATH/filesize.txt

   其中CPATH为日志存放路径SPATH为脚本存放路劲根据实际情况进行修改。这里设置没半小时执行一次。发送邮件以后为避免反复发送这里用 sed -i '/check.sh/s/\*\/30/#\*\/30/g' /var/spool/cron/root送邮件以后将对应的crontab 中的内容注释。

  三 设置计划任务

    crontab -e

     */30 * * * * sh /root/check.sh

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值