博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LINUX定时检查程序运行状态
阅读量:5877 次
发布时间:2019-06-19

本文共 1441 字,大约阅读时间需要 4 分钟。

  hot3.png

当初偶那么一不小心,不知怎么给PHP配了个和MySQL版本不匹配的so文件,于是我的数据库就经常因为某些兼容问题挂吖挂吖挂吖。。。动不动MySQL服务就会挂掉,但我又不知道该怎么搞出正确的库,所以只好搞这么一个时刻检查服务是否正确运行的办法来折中一下…

要让检查脚本自动定时执行,我们需要,里应该都自带了。然后我们需要一个检查脚本,来检查程序是否正在执行,如果不在执行,则启动它。

这里我已经写好了一个

#!/bin/shc=`ps -ef | grep 'mysql' |grep -v grep |wc -l`if [ $c -eq 0 ]then    echo "MySQL is not running,starting it."    echo `service mysql start`    echo ""else    echo "MySQL running!"fi c=`ps -ef | grep 'apache2' |grep -v grep |wc -l`if [ $c -eq 0 ]then    echo "Apache2 is not running,starting it."    echo `service apache2 start`    echo ""else    echo "Apache2 running!"fi c=`ps -ef | grep 'sshd' |grep -v grep |wc -l`if [ $c -eq 0 ]then    echo "SSH is not running,starting it."    echo `service sshd start`    echo ""else    echo "SSH running!"fi echo "Service checked done!"

这是一个检查apache2,mysql和ssh三个重要服务的脚本,当发现程序不在运行,脚本就会启动服务。

然后我们要定时来执行这个检查脚本,以前我一直以为是个很难用的东西,网上的教程里全都是星星******。。。今天才发现其实用法也很简单(不需要很高级的定时任务的情况下)。

星星都是通配符,匹配任何条件。
我们执行crontab -u 用户名 -e来编辑用户的定时任务,一般来说为了保证任务有权限运行我们都用root用户。如下

crontab -u root -e

接着就会打开vi编辑器,编辑器会打开一个文档,那就是root用户的定时任务文件,要定什么时就直接写在里面保存即可,cron会自动检查并执行到期的任务。

编辑器出现后我们要插个新行并写上我们的任务,任务格式是这样

分钟 小时 一个月里第几天 月份 一周里第几天 要执行的命令

前面的时间部分的值用*代替表示任意此单位的时间都会执行,还有种写法,就是每过多少个单位这样的时间执行一次,如下

*/1 * * * * echo 'miao'

这表示每1分钟执行一次,同理如果第一个位置是*/2的话就是每两分钟执行一次。

现在我们要每一分钟检查一次我们的服务是不是都在正常的运行,所以就写上这么一个任务

*/1 * * * * sh 检查脚本的路径

然后按esc键再:wq保存即可,定时任务就会定时执行了。祖国再也不用担心我的博客老是“数据库连接错误”了。

转载于:https://my.oschina.net/boltwu/blog/466296

你可能感兴趣的文章
Socket 一个服务器监听多个客户端 功能实现
查看>>
代码评审的真相
查看>>
Python开发【第一篇】:目录(此文复制粘贴于武沛齐博客园)
查看>>
Cassandra LeveledCompaction在SSD上对写性能的影响
查看>>
python2 编码与解码
查看>>
js 简单问题
查看>>
VirtualBox虚拟机网络设置(四种方式)
查看>>
TortoiseGit's Settings
查看>>
7.生产者消费者 案例 (使用Lock 同步锁 方式,使用Condition完成线程之间的通信)...
查看>>
PS软件怎么把视频转成gif动态图?
查看>>
angular分页插件tm.pagination 解决触发二次请求的问题
查看>>
2013我在奔波中走过-----------那年的高考改变了我们什么? 分类: ...
查看>>
Python数据结构和算法学习笔记2
查看>>
大端小端
查看>>
java_类泛型承继方法
查看>>
C++学习笔记之模版 remove_reference(引用移除)
查看>>
ArrayList去除重复元素的两种方法
查看>>
celery异步发送邮件
查看>>
DAT模块简介
查看>>
小程序显示数据
查看>>