MySQL Replication 監視

参考にさせて頂いたサイト
http://www.ahref.org/tech/server/server-tips/546.html

参考にさせて頂いたサイトに載っていたスクリプトを流用させて頂きました。
ただそのままだと 私の環境では動作しなかったので、少し修正して動作させました。

#!/bin/sh

PASSWORD="PASSWORD"

eval "`/usr/bin/mysql -u root -p${PASSWORD} -e 'show slave status \G' | sed -ne 's/: \(.*\)/="\1"/p' `"
if [ "$?${Slave_IO_Running}${Slave_SQL_Running}" != "0YesYes" ]; then
/usr/bin/mysql -u root -p"${PASSWORD}" -e 'show slave status \G' |/bin/mail -s "REPLICATION DOWN "`hostname` [送り先メールアドレス]
exit 1
fi

修正箇所は メールコマンドの部分です。
元のスクリプトは 送り先メールアドレスと -s オプション以降が 逆になっていました。
それだと動作しなかったので、修正して上記のような形になっています。

MySQLのSlave側で動作テストをして、
レプリケーションを止めた状態で スクリプトを実行すると、
メールが飛んでくる事を確認出来ました。

これでレプリケーションの監視が出来れば、
Master側が死んだ時にSlaveも実は死んでいて、
レプリケーションの意味が無かったなんてことにならなくて済む…かな?