- December 30, 2010 11:35 pm
- Database
SHOW SLAVE STATUS\G でスレーブの状態をチェックして、問題がありそうな場合はメールを送信するスクリプトのメモです。
意図としては、
- スレーブプロセスが走ってるか
- エラーが起きてないか
- 遅延が許容範囲内か(30秒)
ちなみにMySQLそのものに接続できないとかの場合はこのスクリプトでは対応できません。
#! /bin/sh
#
# watch replication
#
ALERT_TO="{mail-destination}";
ALERT_SUBJECT="[MySQL] replication alert";
CHECK_COMMAND="SHOW SLAVE STATUS\\G";
ALLOW_DELAY_SECONDS=30;
echo "$CHECK_COMMAND";
slave_status=`mysql -u {user} -e "$CHECK_COMMAND"`;
echo "$slave_status";
# set variables from status
eval "`echo "$slave_status" | sed -ne 's/: \(.*\)/="\1"/p'`";
if [ "$Slave_IO_Running" != "Yes" ]; then
msg="Slave_IO_Running : $Slave_IO_Running\n";
fi
if [ "$Slave_SQL_Running" != "Yes" ]; then
msg="${msg}Slave_SQL_Running : $Slave_SQL_Running\n";
fi
if [ "$Last_Errno" != "0" ]; then
msg="${msg}Last_Error : [${Last_Errno}] $Last_Error\n";
fi
if [ "$Seconds_Behind_Master" -gt $ALLOW_DELAY_SECONDS ]; then
msg="${msg}Seconds_Behind_Master : $Seconds_Behind_Master\n";
fi
if [ "$msg" != "" ]; then
echo "\n-- Need alert mail --";
echo "$msg";
(echo "${msg}\n${CHECK_COMMAND}\n${slave_status}" | mailx -s "$ALERT_SUBJECT" "$ALERT_TO");
fi
- 新しい: Guavaのススメ
- 古い: JAX-RSのリファレンス実装、Jerseyの使い方(1)
コメント:0
トラックバック:0
- この記事のトラックバック URL
- http://www.akirakoyasu.net/2010/12/30/172/trackback/
- トラックバックの送信元リスト
- MySQLのレプリケーションを監視するシェルスクリプト - Akira Koyasu's WebLog より
日本語
English