这问题出现的比较奇葩,自从博客搬到华为云后,偶尔会发现打开博客出现数据库链接失败的提示,初步怀疑被人CC,把数据库搞挂了,然后每次都需要SSH去连接服务器,执行systemctl start mysql.service,烦的不行,索性搞个crontab,十分钟监测一次MySQL服务,如果挂了就让它自动启动。
废话不多,直接上脚本:
#!/bin/sh
port=$(netstat -nlt|grep 3306|wc -l)
if [ $port -ne 1 ]
then
service mysqld start
echo 'restart mysql success!'
else
echo 'mysql is running!'
fi
port=$(netstat -nlt|grep 3306|wc -l)
if [ $port -ne 1 ]
then
service mysqld start
echo 'restart mysql success!'
else
echo 'mysql is running!'
fi
宝塔部署方法
宝塔请直接到后台,切换到定时任务菜单,添加shell脚本,名字随意,上述脚本粘贴进去即可,自己设置监控频率,推荐十分钟左右。
Crontab部署
先把以上内容另存到/home/mysql.sh文件。
编辑crontab :
crontab -e
插入新行:
*/10 * * * * /home/mysql.sh
保存后,重启crontab服务:
systemctl restart crond.service
后记:如果需要监控其他程序,请修改此脚本的3306端口即可,例如http服务端口为80,常用端口请参考此文章:TCP/UDP常用端口列表