买过一些阿里云最便宜的ECS(几百元/年,1GB内存,安装Debian),使用Wordpress作小企业官网php
而后隔一段时间就会出现网页打不开,显示 “创建数据库链接时出错”。缘由是mysql宕机了。mysql
通常解决的方法:sql
如今,就是要设置一个定时任务:每分钟检查一次mysql是否运行?若是没有运行,则启动。数据库
crontab能够设置任务,定时执行某个脚本——好比也能够定时执行一个PHP文件; 若是没有安装crontab,可百度一下
# 每隔 1 分钟执行一次 test.sh */1 * * * * /var/www/test.sh
上述 五个星号 按顺序依次表明:0-59分钟,0-23小时,1-31某一天,1-12某个月,0-6 Sunday=0 or 7 星期几先别管test.sh是啥,路径自定义bash
打开 /etc/crontab 文件,添加上述代码,保存便可ssh
注意:须要root权限
直接ssh执行命令阿里云
crontab -e
会打开 /var/spool/cron/crontabs/username文件(若是没有username,这个文件仍是root)rest
添加上述代码日志
按ctrl+X退出,提示是否保存,按Y,回车,会有提示:code
crontab: installing new crontab
本方法的好处:会检查设置是否有错误
/etc/init.d/cron restart
或
service cron restart
也有说不须要重启服务
新建 /var/www/test.sh (我把权限设置755),刚才的crontab设置就是每分钟执行这个test.sh的
#!/bin/bash pgrep -x mysqld &> /dev/null if [ $? -ne 0 ] then /etc/init.d/mysql start else echo "MySQL server is running ." fi
注意,若是把 /etc/init.d/mysql start 启动数据库命令改成:service mysql start ,则可能由于权限不够没法执行
到这里就设置好了
新建 /var/www/mysql_start.log(我把权限设置555)
把test.sh改为以下:
#!/bin/bash pgrep -x mysqld &> /dev/null if [ $? -ne 0 ] then echo "At time: `date`: MySQL is stop .">> /var/www/mysql_start.log /etc/init.d/mysql start else echo "MySQL server is running ." fi
而后每分钟的执行状况,都会写入这个日志文件,