RDS 再起動時に実際にDBに接続できない時間を計測する
これはなに
なんらかの事情によりAWSコンソールでRDSインスタンスを再起動する必要が生じることがある。
再起動よってDBにアクセス不能となった時間を計測したい時があるかもしれない。そんな時のためのシェルスクリプト。
使い方
これを実行しながらAWSコンソールで再起動を行い、標準出力を確認する。
サンプルコード
/var/tmp/mysql.conf
として設定ファイルを用意しておいてください。
#!/bin/bash MYSQL_SCHEMA="db_name" ROOT_DIRECTORY="/var/tmp" CMD_MYSQL="mysql --defaults-extra-file=$ROOT_DIRECTORY/mysql.conf -t --show-warnings $MYSQL_SCHEMA" QUERY="SELECT id FROM table where id = 1;" FLAG=0 while : do VALUE=`echo ${QUERY} | ${CMD_MYSQL}` RESULT=$? echo $VALUE if [ $FLAG -eq 0 ]; then if [ $RESULT -eq 0 ]; then sleep 1 else FLAG=1 SECONDS=0 echo "[INFO] 計測開始" sleep 1 fi else if [ $RESULT -eq 0 ]; then time=$SECONDS echo "[INFO] 計測終了" break; else sleep 1 fi fi done echo $time