[Linux] 使用 shell 檢查 MySQL 狀態,未啟動則寄信

因為先前資料庫突然不知道為何自動關閉,隔了一天才發現,為了防止此狀況,趕儘用簡單的方式,寫了個簡單的 shell script,來檢查 MySQL 的啟動狀態,並使用 crontab 每小時檢查一次,若狀態不是 active ,則寄信給自己,步驟如下(實做於 CentOS 7):

step1:建立 checkMySQLConnection.sh 檔案,並存於 /root/scripts/ 資料夾內,檔案內容如下:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:~/bin
export PATH

# check mysql status
mysql_connection=$(systemctl is-active mariadb.service)

if [ "$mysql_connection" == "active" ] ; then
  echo "active"
else
  echo "send email"
  mail -s "mysql wrong" chang.abin@gmail.com < /dev/null
  systemctl restart mariadb.service
fi

exit

step2:寫入 crontab ,並設定每小時檢查一次,若不是 active 狀態,則寄 email (進一步也可以是直接重新啟動 MySQL ):

# crontab -e
*  */1  *  *  * sh /root/scripts/checkMySQLConnection.sh

需留意的是要安裝 mailx 套件,才能用 server 寄信。另外關於 mail 的 log 檔會在/var/spool/mail/ 資料夾內。

// 安裝 mailx 的指令:
# yum install mailx

您可在此處留言

avatar

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

  Subscribe  
Notify of