shell指令碼 監控MySQL服務是否正常

2021-09-21 10:04:21 字數 4170 閱讀 1830

原創模範生

2015-10-15 17:21:02

2783人閱讀

監控mysql服務是否正常,通常的思路為:檢查3306埠是否啟動,ps檢視mysqld程序是否啟動,命令列登入mysql執行語句返回結果,php或jsp程式檢測(需要開發人員開發程式)等等;

方法1:監聽3306埠

1

2

3

4

5

6

7

8

9

10

#!/bin/bash

#written by mofansheng@2015-10-15

port=`netstat-nlt|grep3306|wc-l`

if[ $port -ne1 ]

then

/etc/init.d/mysqldstart

else

echo"mysql is running"

fi

方法2:檢視mysqld程序

注意注意:如果使用程序過濾的話,指令碼名稱如果裡面包含mysql的話,指令碼執行有坑,切記!!!因為會把指令碼也grep了一次,導致結果不準確;

12

3

4

5

6

7

8

9

10

11

[root@localhost baby]# cat check_mysql.sh

#!/bin/bash

#written by mofansheng@2015-10-15

process=`ps-ef |grepmysql|grep-vgrep|wc-l`

if[ $process -ne2 ]

then

/etc/init.d/mysqldstart

else

echo"mysql is running"

fi

執行結果如下:

[root@localhost baby]# sh check_mysql.sh

starting mysql success! 

改名之後執行為正常結果:

[root@localhost baby]#mv check_mysql.sh check_db.sh

[root@localhost baby]# sh check_db.sh

mysql is running

方法3:雙保險,程序和埠都成功才算mysql服務正常

1

2

3

4

5

6

7

8

9

10

11

#!/bin/bash

#written by mofansheng@2015-10-15

port=`netstat-nlt|grep3306|wc-l`

process=`ps-ef |grepmysql|grep-vgrep|wc-l`

if[ $port -eq1 ] && [ $process -eq2 ]

then

echo"mysql is running"

else

/etc/init.d/mysqldstart

fi

4:使用客戶端登入mysql執行命令,檢視返回結果測試服務是否啟動,理論上此方法最可靠。

1

2

3

4

5

6

7

8

9

10

11

[root@localhost baby]# cat check_db_client.sh

#!/bin/bash

#written by mofansheng@2015-10-15

mysql -uroot -p123456 -e"select version();"&>/dev/null

if[ $? -ne0 ]

then

/etc/init.d/mysqldstart

else

echo"mysql is running"

fi

執行結果如下:

[root@localhost baby]# sh check_db_client.sh

mysql is running

mysql 監控指令碼 監控mysql狀態指令碼

監控mysql狀態,發現宕後,自動重啟,每秒檢查一次。check.sh bin bash while true do bin sleep 1 sh mysql status.sh done chengkill bin sh pid kill thread for chenglee if filefo...

shell學習十四 編寫監控mysql指令碼

shell編寫監控mysql指令碼 判斷服務存活方法 1 埠 root node01 netstat lntup grep 330 tcp 0 0 0.0.0.0 3306 0.0.0.0 listen 127641 mysqld 2 程序判斷 root node01 ps ef grep mysq...

shell監控指令碼 監控CDN 首頁

注意 請先參考 shell監控指令碼 準備工作,監控指令碼在 rhel5 下測試正常,其它版本的linux 系統請自行測試 監控cdn 首頁 cat chk cdn.sh bin bash script name chk cdn.sh check cdn index.html domain name...