当初偶那么一不小心,不知怎么给PHP配了个和MySQL版本不匹配的so文件,于是我的数据库就经常因为某些兼容问题挂吖挂吖挂吖。。。动不动MySQL服务就会挂掉,但我又不知道该怎么搞出正确的库,所以只好搞这么一个时刻检查服务是否正确运行的办法来折中一下…
要让检查脚本自动定时执行,我们需要cron,linux里应该都自带了。然后我们需要一个检查脚本,来检查程序是否正在执行,如果不在执行,则启动它。
这里我已经写好了一个
#! /bin/sh c=`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三个重要服务的脚本,当发现程序不在运行,脚本就会启动服务。
然后我们要定时来执行这个检查脚本,以前我一直以为cron是个很难用的东西,网上的教程里全都是星星******。。。今天才发现其实用法也很简单(不需要很高级的定时任务的情况下)。
星星都是通配符,匹配任何条件。
我们执行 `crontab -u 用户名 -e`来编辑用户的定时任务,一般来说为了保证任务有权限运行我们都用root用户。如下
crontab -u root -e
接着就会打开vi编辑器,编辑器会打开一个文档,那就是root用户的定时任务文件,要定什么时就直接写在里面保存即可,cron会自动检查并执行到期的任务。
编辑器出现后我们要插个新行并写上我们的任务,任务格式是这样
分钟 小时 一个月里第几天 月份 一周里第几天 要执行的命令
前面的时间部分的值用*代替表示任意此单位的时间都会执行,还有种写法,就是每过多少个单位这样的时间执行一次,如下
*/1 * * * * echo 'miao'
这表示每1分钟执行一次,同理如果第一个位置是`*/2`的话就是每两分钟执行一次。
现在我们要每一分钟检查一次我们的服务是不是都在正常的运行,所以就写上这么一个任务
*/1 * * * * sh 检查脚本的路径
然后按esc键再:wq保存即可,定时任务就会定时执行了。祖国再也不用担心我的博客老是“数据库连接错误”了。
本文发布于 https://luojia.me
本站文章未经文下加注授权不得拷贝发布。
佳佳酱~ 好久不见~
是吖是吖
你18岁?
是吖是吖
在哪里上学呢。。。
无锡大三中
站长你好,恒创科技买主机送平板,独立IP专享7折,诚邀广告位合作,博主有兴趣可加Q:2116461930
配置没我的好还比我的贵
博主辛苦了,欢迎来回访
你肿么又来了。。。
再来就把你当bot消息咯
居然这么麻烦
我把脚本都写好了还嫌麻烦吖。。。。
对你而言啊,包括写脚本的过程
都不知道你在说啥了。。。
那抱歉了……
用军哥的环境包吧,真心好用-。-lnmp.org
自己动手能提高技能啊少年!
要是你什么都会,还要别人干什么
这还是比较基本的。。。必须要会
yum你值得拥有
当初我就是为了搞清怎么安装才特意没有用一键包