参考文档:检测mysql状态,实现自动重启
1.测试环境
centos 6.x
2.脚本代码
#!/bin/bash
count=0
#尝试循环10次后退出
while [ $count -lt 10 ]
do
pgrep -x mysqld >/dev/null
if [ $? -ne 0 ];then
count=$[$count+1]
#不能使用service mysqld start,启动不成功
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
else
echo “MySQL server is running .”
break
fi
done
if [ $count -ne 0 ];then
#写入日志文件,不需要可以注释掉
echo -e “At time: ` date "+%Y-%m-%d %H:%M:%S"` :MySQL is stop . Trying to restart $count times .\n” >>/root/sqllog.txt
fi
注意:复制上面保存成sh脚本,记得转换成UNIX格式
2.添加定时任务
crontab -e
*/1 * * * * /目录/文件名.sh
具体操作:
1 ) 输入crontab -e
2)输入 i
字符,变成插入状态
3)输入的定时代码*/1 * * * * /目录/文件名.sh
例如*/1 * * * * /root/mysql.sh
这条代码表示1分钟执行一次/root目录下的mysql.sh文件
4)点击键盘Esc键,退出插入状态。
5)输入:wq
保存并且退出
6)输入crontab -l
查看是否添加成功