2007年07月04日
automysqlbackup.sh.2.5[ Tips ]
データベースをMySQLで運用していると、定期的なバックアップが必要になるかと思う。
バックアップに関しては、mysqldumpを実行してやるだけなので、cronジョブの設定をするのも非常に簡単なのだが、日次、週次、月次とバックアップをし、そのdumpをローテーションさせることを考えると、自分でshellを書いてやるのも面倒くさくなってしまう。
そんな時に便利なのがautomysqlbackupだ。
http://members.lycos.co.uk/wipe_out/automysqlbackup/(公式サイト)
http://sourceforge.net/projects/automysqlbackup/(Sourceforge)
データベースにアクセスする設定だけを変更するだけで、日次バックアップ、週次バックアップ(デフォルトは土曜日。変更可)、月次バックアップ(毎月1日)を行ってくれる。
日次バックアップは週ごとのローテーション
週次バックアップは5ファイルのローテーション
月次バックアップはローテーションなしの設定となる。
しかし、実はautomysqlbackup 2.5にはバグがあって、週次バックアップがローテーションされずにどんどんと蓄積されていく。
なぜだろう?と思い、shellを確認してみると、ファイルの削除設定を間違えているようだ。
539行目
eval rm -fv "$BACKUPDIR/weekly/$DB_week.$REMW.*"
とあるのを、
eval rm -fv "$BACKUPDIR/weekly/$DB/${DB}_week.$REMW.*"
の様に修正してやればいいかと思う。
尚、このautomysqlbackupをxreaのサーバーに設置したが、その際、一つ悩んだ事がある。
何故か、パスワードのエラーが出るのだ。
…よくよく調べてみると、デフォルトではMySQLのデータベースパスワードはFTPパスワードと同一ではなく、行末2文字欠けたものがパスワードだった。なんとも単純な理由だが、意外と盲点になりやすい事柄だ。