最简单的shell监控脚本 结合定时任务 2019-02-26
首先挂了得解决挂了的问题,例如把日志输出到到文件,在排查。这点我们先忽略
如何让他重新启动?如果错误了,跳出循环直接导致整个进程都断了,那么我们就需要用shell脚本来监控这个进程是否存在。不存在则把它拉起来执行
例如我用thinkphp 写了个命令,假设这条命令是 php think rmCache &
这条命令就是跑脚本删除缓存的,执行这条命令就挂起一个php进程,这个进程接收到rabbitMQ消息时才清理缓存。
那如果清理过程中碰到问题挂了怎么办?我们怎么让他重新启动?
首先我们写个sh脚本
# cd /usr/src
# vim monitorRmCache.sh
在脚本输入以下内容
第一行:生命
第二行:统计rmCache进程的数量
第三行判断进程数是否为0
第四行 进入项目
第五行启动 php执行thinkphp封装的命令
第六行判断结束
#! /bin/bash
count=`ps -ef |grep rmCache | grep -v "grep"|wc -l`
if [ $count == 0 ];then
cd /www/tp5
php /tp5/think
fi
退出编辑
#wq
支持监控脚本写好了。
脚本写好了给他个执行权限 chmod +x monitorRmCache.sh
然后我们进入crontab
#crontab -e
输入以下配置
*/1 * * * * /usr/src/monitorRmCache.sh
:wq
crontab就是linux的定时任务。第一位是分钟,第二位是时 以此类推为 分 时 日 月 周
*/1 就是每分钟, 如果第一位填1 则是 每小时的第一分钟。
第六位则crontab 要执行的东西
其他配置同理 例如我们要配置每月的1号 21点30分
那么久配置
30 21 1 * * /usr/src/monitorRmCache.sh
这样就是 1号 的21点 30分来执行这条定时命令
OK,至此结束。