最近换下宝塔的环境,转战kangle和amh,主要是宝塔被大佬爆出后门。换到其他面板后,mysql莫名其妙会被挤掉,所以写一个定时 监控的bash守护脚本,以便掉线进行重启。
![shell查看进程是否运行,不存在进行重启 图片[1]-shell查看进程是否运行,不存在进行重启-不念博客](https://www.bunian.cn/wp-content/uploads/2022/12/image-344-180.png)
bash代码如下
#!/bin/bashresult=`ps -ef|grep -w mysql|grep -v grep|wc -l`if [ $result -ge 1 ];thenecho "app start sucessed"else/etc/init.d/mysql restartecho "Restarting current program"fi#!/bin/bash result=`ps -ef|grep -w mysql|grep -v grep|wc -l` if [ $result -ge 1 ];then echo "app start sucessed" else /etc/init.d/mysql restart echo "Restarting current program" fi#!/bin/bash result=`ps -ef|grep -w mysql|grep -v grep|wc -l` if [ $result -ge 1 ];then echo "app start sucessed" else /etc/init.d/mysql restart echo "Restarting current program" fi
重命名并保存为mysql.sh
,这个名字也可以自定义
函数解析
检查程序是否运行
ps -ef|grep -w mysql 搜索mysql进程名称grep -v grep 过滤掉 grep 进程wc -l 显示结果行数ps -ef|grep -w mysql 搜索mysql进程名称 grep -v grep 过滤掉 grep 进程 wc -l 显示结果行数ps -ef|grep -w mysql 搜索mysql进程名称 grep -v grep 过滤掉 grep 进程 wc -l 显示结果行数
if判断的类型
result返回现在有多少指定进程在进程,不存在则进行下一步操作
-eq:等于-ne:不等于-le:小于等于-ge:大于等于-lt:小于-gt:大于-eq:等于 -ne:不等于 -le:小于等于 -ge:大于等于 -lt:小于 -gt:大于-eq:等于 -ne:不等于 -le:小于等于 -ge:大于等于 -lt:小于 -gt:大于
crontab守护
在ssh界面进入crontab界面来设置定时任务
crontab -e或vim /etc/crontabcrontab -e 或 vim /etc/crontabcrontab -e 或 vim /etc/crontab
这里我设置5分钟的定时定时任务
*/5 * * * * bash /root/mysql.sh*/5 * * * * bash /root/mysql.sh*/5 * * * * bash /root/mysql.sh
这样就搞定了。
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END