【Linux+MySQL】Linux中利用shell脚本定时检测mysql状态,实现自动重启

By | 2020 年 10 月 7 日

第一种方法:

宝塔面板比较简单,计划任务菜单,任务类型选择shell脚本,脚本内容

pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
	bash /www/server/panel/script/rememory.sh
	/etc/init.d/mysqld start
fi

这样就可以每隔 一段时间自动检测 MySQL 是否停止,停止的话就会自动启动了。

第二种方法:

1、利用shell脚本+定时器cron,检查MySQL是否宕机,宕机就重启

2、shell脚本:【mysqlRestartXzz.sh脚本文件】 【mysqlRestartXzz.log脚本日志文件】

#!/bin/bash
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ]
then
echo “At time: `date +%Y%m%d-%H:%M:%S` MySQL is stop .”>> /www/shell_files/mysqlRestartXzz.log
/etc/init.d/mysqld start
else
echo “At time: `date +%Y%m%d-%H:%M:%S` MySQL server is running .”>> /www/shell_files/mysqlRestartXzz.log
fi

3、测试shell脚本是否可用:手动停止MySQL,执行脚本命令,测试如下:

4、将shell脚本写入定时器

1)输入crontab -e
2)输入 i 字符,变成插入状态
3)输入的定时代码*/1 * * * * /www/shell_files/mysqlRestartXzz.sh
例如*/1 * * * * /www/shell_files/mysqlRestartXzz.sh 这条代码表示1分钟执行一次/www/shell_files目录下的mysqlRestartXzz.sh文件
4)点击键盘Esc键,退出插入状态。
5)输入:wq保存并且退出
6)输入crontab -l查看是否添加成功