監(jiān)控MySQL主從狀態(tài)的shell腳本
分享一個(gè)Linux下,監(jiān)控MySQL主從狀態(tài)及配合企業(yè)微信機(jī)器人報(bào)警的Shell腳本
- SLAVE_IP:為監(jiān)控的主機(jī)IP
- USER:為msyql用戶
- PASSWORD:為mysql密碼
- WHEREIS_MYSQL:為mysql命令路徑
- WEBHOOK:為企業(yè)微信機(jī)器人Webhook地址
- wx():為企業(yè)微信機(jī)器人函數(shù)
- Check_Mysql_Slave():為監(jiān)控腳本主函數(shù)
#! /bin/bash
#
source /etc/profile
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SLAVE_IP=`ip add | grep inet | grep brd | awk -F / '{print $1}' | awk -F " " '{print $2}' | awk 'NR==1'`
USER=monitor
PASSWORD=xxxxxx
TIME=`date`
WHEREIS_MYSQL=/opt/mysql/bin/mysql
WEBHOOK='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=bb09197b-5ff6-4928-9872-xxxxxx'
wx(){
cat > $0.msg << EOF
curl '$WEBHOOK' \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "text",
"text": {
"content": "$1",
}
}'
EOF
sh $0.msg && rm -rf $0.msg
}
Check_Mysql_Slave()
{
$WHEREIS_MYSQL -u$USER -p$PASSWORD -h$SLAVE_IP -e "select version();" >/dev/null 2>&1
if [ $? -ne 0 ];then
echo "Mysql is stopped $DATE" >> /data/mysql/check.log
ERROR="ERROR:Mysql-$SLAVE_IP cannot connect\n$TIME"
wx "$ERROR"
else
#echo "1" >> /data/mysql/check.log
IO_SQL_STATUS=`$WHEREIS_MYSQL -u$USER -p$PASSWORD -h$SLAVE_IP -e "show slave status \G" 2>/dev/null | awk '/Slave_.*_Running:/{print $1$2}'`
for i in $IO_SQL_STATUS;do
THREAD_STATUS_NAME=${i%:*}
THREAD_STATUS=${i#*:}
if [ "$THREAD_STATUS" != "Yes" ];then
STATUS="ERROR:Mysql-$SLAVE_IP $THREAD_STATUS_NAME status is $THREAD_STATUS!\n$TIME"
echo "$STATUS" >> /data/mysql/check.log
wx "$STATUS"
fi
done
fi
}
Check_Mysql_Slave
最終報(bào)警效果如下:

以上就是監(jiān)控MySQL主從狀態(tài)的shell腳本的詳細(xì)內(nèi)容,更多關(guān)于監(jiān)控MySQL主從狀態(tài)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MySQL Flink Watermark實(shí)現(xiàn)事件時(shí)間處理的關(guān)鍵技術(shù)
Flink Watermark是Flink流處理框架中實(shí)現(xiàn)事件時(shí)間處理的關(guān)鍵技術(shù)之一。它是通過一種機(jī)制來解決數(shù)據(jù)亂序和延遲的問題,使得Flink可以在處理遲到的數(shù)據(jù)時(shí)保證結(jié)果的準(zhǔn)確性。Flink Watermark可以在數(shù)據(jù)流中插入一個(gè)時(shí)間戳,將數(shù)據(jù)流轉(zhuǎn)化為具有時(shí)間維度的數(shù)據(jù)集合2023-05-05
將.sql文件導(dǎo)入到MySQL數(shù)據(jù)庫具體步驟
MySQL有多種方法導(dǎo)入多個(gè).sql文件,下面這篇文章主要介紹了將.sql文件導(dǎo)入到MySQL數(shù)據(jù)庫的具體步驟,文中將實(shí)現(xiàn)步驟介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10
mysql數(shù)據(jù)庫的全量與增量的備份以及恢復(fù)方式
在數(shù)據(jù)庫管理中,全量備份與恢復(fù)是將整個(gè)數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)出并在需要時(shí)完整地恢復(fù),這通常使用mysqldump工具完成,增量備份則是在全量備份的基礎(chǔ)上,只備份那些自上次全量備份后發(fā)生變化的數(shù)據(jù),這需要數(shù)據(jù)庫的二進(jìn)制日志(binlog)開啟2024-09-09
mysql下普通用戶備份數(shù)據(jù)庫時(shí)無lock tables權(quán)限的解決方法
mysql使用普通用戶備份出現(xiàn)無lock tables權(quán)限的解決方法,需要的朋友可以參考下。2011-10-10
修改mysql5.5默認(rèn)編碼(圖文步驟修改為utf-8編碼)
安裝mysql后,啟動(dòng)服務(wù)并登陸,使用show variables命令可查看mysql數(shù)據(jù)庫的默認(rèn)編碼;mysql數(shù)據(jù)庫的默認(rèn)編碼并不是utf-8如何修改呢,本文將詳細(xì)介紹,感興趣的朋友可以了解下2013-01-01
Windows實(shí)現(xiàn)通過cmd命令行啟動(dòng)mysql
介紹了通過Windows命令行啟動(dòng)MySQL的詳細(xì)步驟,包括普通啟動(dòng)和使用管理員權(quán)限的方法,以及如何登錄和查詢數(shù)據(jù),主要步驟包括修改環(huán)境變量、使用net start命令、確保以管理員身份運(yùn)行CMD,以及使用MySQL命令行工具進(jìn)行數(shù)據(jù)庫操作2024-10-10

