麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Linux Shell > 正文

實戰模擬監控MySQL服務shell腳本小結

2020-07-27 19:02:35
字體:
來源:轉載
供稿:網友

1)端口判斷法==>僅適合數據庫本地使用

法1:if條件判斷方法

[root@oldboy scripts]# cat check_db01.sh#!/bin/sh#created by oldboy#mail:[email protected]=`netstat -lnt|grep 3306|wc -l`if [ $PortNum -eq 1 ]then echo "mysqld is running."else echo "mysqld is stoped."fi

法2:條件表達式用法

[root@oldboy scripts]# cat check_db01_1.sh#!/bin/sh#created by oldboy#mail:[email protected] PortNum=`netstat -lnt|grep 3306|wc -l`#PortNum=`nmap 10.0.0.189 -p 3306|grep open|wc -l`[ $PortNum -eq 1 ] && echo "mysqld is running."||echo "mysqld is stoped."

法3:使用系統函數顯示法

[root@oldboy scripts]# cat check_db01_2.sh#!/bin/sh#created by oldboy#mail:[email protected]#load functions[ -f /etc/init.d/functions ] && . /etc/init.d/functionsPortNum=`netstat -lnt|grep 3306|wc -l`if [ $PortNum -eq 1 ]then action "mysqld is running." /bin/trueelse action "mysqld is stoped." /bin/falsefi

2)進程加端口判斷法==>僅適合數據庫本地使用

[root@oldboy scripts]# cat check_db02.sh#!/bin/sh#created by oldboy#mail:[email protected] PortNum=`netstat -lnt|grep 3306|wc -l`ProcessNum=`ps -ef|grep mysql|grep -v grep| wc -l`#echo $PortNum $ProcessNum#exit 1 if [ $PortNum -eq 1 -a $ProcessNum -eq 2 ]then echo "mysqld is running."else echo "mysqld is stoped."fi

提示:如果不放心還可以同時加上模擬用戶訪問。

技巧:腳本調試技巧

1)grep過濾的字符串,不要包含在文件名里,例:grep mysql ,文件名為check_mysql.sh 就不太好。比較好的文件名如:
-rw-r--r-- 1 root root  236 Sep  9 22:19 check_db01.sh
-rw-r--r-- 1 root root  293 Sep  9 22:34 check_db02.sh
-rw-r--r-- 1 root root  212 Sep  9 22:49 check_db03.sh
2)當語法沒有問題但是結果不正確,可以使用下面的方法排查:
   a)在變量定義的后面打印變量結果,看和實際結果是否一致,如:
     echo $PortNum $ProcessNum
     exit 1
   b) sh -x check_db02.sh的方式,跟蹤腳本執行過程,更多的調試方案見后面的SHELL腳本調試精講。
3)判斷遠端mysql服務是否正常的方法

法1:端口檢查法==>適合在遠端服務器使用(本地也適合)

[root@oldboy scripts]# cat check_db03.sh#!/bin/sh#created by oldboy#mail:[email protected]=`nmap 10.0.0.189 -p 80|grep open|wc -l`if [ $PortNum -eq 1 ]then echo "mysqld is running."else echo "mysqld is stoped."fi

提示:端口的使用方法還有很多種,包括不限于下面地址的3種方法,http://oldboy.blog.51cto.com/2561410/942530
例如:還可以用nagios的check_tcp插件等法。
法2:模擬用戶(包括web server)訪問方法==>適合在遠端服務器使用(本地也適合)

[root@oldboy scripts]# cat check_db04.sh#!/bin/sh#created by oldboy#mail:[email protected] mysql -S /data/3306/mysql.sock -e "select version();" >/dev/null 2>&1if [ $? -eq 0 ]then echo "mysqld is running."else echo "mysqld is stoped."fi

技巧:
1)使用web 連接賬號模擬訪問。
法3:模擬用戶使用程序URL的方式判斷

<?php/*#this scripts is created by oldboy#oldboy QQ:31333741#site:http://www.etiantian.org#blog:http://oldboy.blog.51cto.com#oldboy trainning QQ group: 208160987 226199307 44246017*/  $link_id=mysql_connect('10.0.0.4','oldboy','oldboy123') or mysql_error();  if($link_id){   echo "mysql successful by oldboy !";  }else{   echo mysql_error();  }?>

以上的方法僅僅是簡單的判斷,那么下面給出一個集判斷,處理,及報警于一身的較專業的mysql檢查處理腳本。
4)較專業mysql檢查處理腳本的解決方案

#!/bin/bash #created by oldboy QQ 49000448 #date:20100918 MYUSER=root MYPASS="oldboy" MYSOCK=/data/3306/mysql.sock MySQL_STARTUP="/data/3306/mysql" LOG_PATH=/tmp LOG_FILE=${LOG_PATH}/mysqllogs_`date +%F`.log MYSQL_PATH=/usr/local/mysql/bin MYSQL_CMD="$MYSQL_PATH/mysql -u$MYUSER -p$MYPASS -S $MYSOCK" #→全變量定義方式,顯得更專業。 $MYSQL_CMD -e "select version();" >/dev/null 2>&1 if [ $? -eq 0 ] then echo "MySQL is running! " exit 0 else $MySQL_STARTUP start >$LOG_FILE#→日志也是變量。 sleep 5; $MYSQL_CMD -e "select version();" >/dev/null 2>&1 if [ $? -ne 0 ] then for num in `seq 10`#→通過for循環來殺死mysqld,真正殺死則退出循環或每隔個兩秒殺一次,一共殺10次。 do killall mysqld>/dev/null 2>&1 [ $? -ne 0 ] && break; sleep 2 done $MySQL_STARTUP start >>$LOG_FILE fi $MYSQL_CMD -e "select version();" >/dev/null 2>&1 && Status="restarted" || Status="unknown"#→這個邏輯更準確。 echo "MySQL status is $Status" >>$LOG_FILE mail -s "MySQL status is $Status" [email protected] < $LOG_FILE #→把上面的Status作為結果標題傳給郵件,當然你可以做短信,語音通話報警。 fi exit 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产一区在线观看视频 | 中国hdxxxx护士爽在线观看 | 欧美一级特黄aaaaaa在线看首页 | 夜添久久精品亚洲国产精品 | 成人在线观看一区 | 欧美成人精品不卡视频在线观看 | 国产一区二区三区在线视频 | 欧美中文字幕在线视频 | 久久久国产精品视频 | 黄色的视频免费观看 | 日本一区二区不卡在线观看 | 成人区一区二区三区 | 欧美精品色精品一区二区三区 | 成人黄视频在线观看 | 在线观看免费污视频 | 舌头伸进添的我好爽高潮网站 | 一区二区三区手机在线观看 | 国产精品久久久久久婷婷天堂 | 91久久极品少妇韩国 | 男人的天堂视频网站 | 国产亚洲精品一区二区三区 | 在线观看91精品 | 亚洲国产超高清a毛毛片 | 日本aaaa片毛片免费观蜜桃 | 欧美精品成人一区二区三区四区 | 一级黄色a视频 | 久久久久久久久久性 | 成人免费看毛片 | 久久国产秒 | xxxx69hd一hd| a黄色片 | 中文字幕在线播放不卡 | 国产成人av免费看 | 免费国产一级淫片 | 国产精品久久久久久久久久久久久久久久 | 欧美成人小视频 | japanese massage tube | 黄色片视频在线观看 | 久久久久久久久免费 | 黄污网站在线观看 | 亚洲成人在线免费 |