linux 编写监测脚本,如果停掉自动执行重启操作,并且发送邮件通知

1,环境准备工作:

   我们采用的操作系统是centOS7.0,安装mailx 插件用来发送邮件通知;

   命令如下:

    yum install mailx

   安装完成之后,执行测试命令如下:

   echo "Message Body" | mail -s "Message Subject" receiver@example.com

   把邮箱换成你自己的邮箱,然后你会收到一份邮件;

   这样,mailx 安装成功;

2,编写脚本监测工作:

      因为我们采用的是docker 部署,所以我们监测的是docker容器:监测脚本如下:

      #!/bin/bash

cd monitor --先进入当前的路径,执行
while read line;do
    eval "$line"
done < itg-monitor
switch=$flag
echo $switch


line=$(docker ps | grep 容器名称)


if [ -z "$line" ]
then 
   echo "not running"
   if [ "$switch"x = "y"x ]
   then
   echo "ofbiz-ess is not running" | mail -s "容器名称 is not running and attempt to restart automatically" 邮箱地址 
   docker restart ofbiz-ess
   else
   echo "容器名称 is not running but do nothing"
   echo "容器名称 is not running" | mail -s "ofbiz-ess is not running but do nothing!" 邮箱地址
   fi 
else
   echo "running"
fi


因为监测脚本读取配置文件,获取开关标识,配置文件如下:


flag=y


定时执行任务,我们采用的是crontab 来定时执行任务:

编写cron文件:

*/5 * * * *  /root/monitor/itg-monitor.sh

这个意思是每5分钟执行一次;

itg-monitor.sh 就是上面的监测脚本


最后,记住定时任务需要安装:

crontab cron文件名称;


然后查看定时任务的命令:

crontab -l



现在才发现,之前定时任务执行不成功,是因为没有先进入当前的目录;






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值