目的: 監測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>> </code><code>/dev/null</code> <code>2>&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 ></code><code>/dev/null</code>
<code> </code><code>echo</code> <code>"`/bin/date '+%Y%m%d %H:%M:%S'` mysql is restart "</code> <code>>> </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,如需轉載請自行聯系原作者