检查mysql状态,服务异常时将重启 shell



-查看某个服务的运行状态

systemctl status mysql


-你只想关心 Active 状态,还可以使用 systemctl is-active 命令

systemctl is-active mysql

active


-keep_mysql_active.sh

cat >> /opt/keep_mysql_active.sh <<EOF

#!/bin/bash
result=`systemctl is-active mysql`
if [ $result = "active" ]; then
  echo "[$(date +%Y%m%d_%H%M%S)] MySQL is active" 
  exit
else
  echo "[$(date +%Y%m%d_%H%M%S)] MySQL is inactive"
  echo "[$(date +%Y%m%d_%H%M%S)] Restart now"
  systemctl restart mysql
  echo "[$(date +%Y%m%d_%H%M%S)] Restart Done!"
  echo "[$(date +%Y%m%d_%H%M%S)] Mysql Restart!"| mail -s "Mysql Restart" 13850000249@qq.com
fi

EOF

-如果 MySQL 服务为 active 状态,则结束本次检测;如果为 inactive 状态,则尝试重启 MySQL 服务。


-crontab -l   每隔一分钟检查一次

* * * * * /bin/sh  /opt/keep_mysql_active.sh  >> /opt/keep_mysql_active.log 2>&1

chmod -R 777  /opt/keep_mysql_active.sh


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回