天天看點

一個簡單的mysql服務檢測啟動腳本

目的: 監測mysql的存活狀态,一旦監測到mysql down掉,重新啟動mysql.

腳本内容:

1

2

3

4

5

6

7

<code>/usr/local/mysql/bin/mysqladmin</code> <code>-uroot -ppassword </code><code>ping</code> <code>&gt; </code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>if</code> <code>[ $? -</code><code>ne</code> <code>0 ]</code>

<code>then</code>

<code>        </code><code>/etc/init</code><code>.d</code><code>/mysql</code><code>.server restart &gt;</code><code>/dev/null</code>

<code>        </code><code>echo</code> <code>"`/bin/date '+%Y%m%d %H:%M:%S'`  mysql is restart "</code> <code>&gt;&gt; </code><code>/root/scripts/mysql_run</code><code>.log</code>

<code>fi</code>

利用crontab定時任務來執行腳本:

<code>[root@Master_mysql scripts]</code><code># crontab -l</code>

<code>*</code><code>/2</code> <code>* * * * </code><code>/bin/bash</code> <code>/root/scripts/mysql_ping</code><code>.sh</code>

手動模拟關閉msyql,然後間隔2分鐘,檢視cron執行日志"/var/log/cron"和腳本執行日

志"/root/scripts/mysql_run.log"

8

9

10

11

12

13

14

15

16

17

18

19

<code>#cron執行日志</code>

<code>[root@Master_mysql scripts]</code><code># tail -n 10 /var/log/cron</code>

<code>Jul 22 16:27:01 Master_mysql </code><code>crontab</code><code>[5818]: (root) BEGIN EDIT (root)</code>

<code>Jul 22 16:27:07 Master_mysql </code><code>crontab</code><code>[5818]: (root) REPLACE (root)</code>

<code>Jul 22 16:27:07 Master_mysql </code><code>crontab</code><code>[5818]: (root) END EDIT (root)</code>

<code>Jul 22 16:27:38 Master_mysql </code><code>crontab</code><code>[5849]: (root) LIST (root)</code>

<code>Jul 22 16:28:01 Master_mysql crond[3103]: (root) RELOAD (</code><code>cron</code><code>/root</code><code>)</code>

<code>Jul 22 16:28:01 Master_mysql crond[5853]: (root) CMD (</code><code>/bin/bash</code> <code>/root/scripts/mysql_ping</code><code>.sh)</code>

<code>Jul 22 16:29:59 Master_mysql </code><code>crontab</code><code>[6138]: (root) LIST (root)</code>

<code>Jul 22 16:30:01 Master_mysql crond[6140]: (root) CMD (</code><code>/bin/bash</code> <code>/root/scripts/mysql_ping</code><code>.sh)</code>

<code>Jul 22 16:32:01 Master_mysql crond[6394]: (root) CMD (</code><code>/bin/bash</code> <code>/root/scripts/mysql_ping</code><code>.sh)</code>

<code>Jul 22 16:34:01 Master_mysql crond[6429]: (root) CMD (</code><code>/bin/bash</code> <code>/root/scripts/mysql_ping</code><code>.sh)</code>

<code>#腳本執行日志</code>

<code>[root@Master_mysql scripts]</code><code># cat mysql_run.log</code>

<code>20140722 16:28:14  mysql is restart</code>

<code>20140722 16:30:09  mysql is restart</code>

<code>20140722 16:34:08  mysql is restart</code>

這樣就可以實作mysql停服時自動啟動了.

     本文轉自marbury 51CTO部落格,原文連結:http://blog.51cto.com/magic3/1440963,如需轉載請自行聯系原作者

繼續閱讀