MySQLのバックアップをスクリプトとクーロンで10日分保存する

WordPressとかZenCartとかよく使うようになってきたんで、データベースのバックアップについて考えてみました。

とりあえず、WordPressはプラグインでデータベースを自動的にバックアップしてくれるのがあったんで、毎日バックアップしてメールで自分に飛ばしてます。

ZenCartはそういったプラグンを見つけられなかったので、検索して幾つか試してみました。

 

まずは、簡単なツールを検索したところ以下のサイトを発見
 ★MySQLの自動バックアップ phpMyBackupPro (masha.webTechLog)
手動でバックアップは出来ましたが、クーロンで自動実行するところでちょっとつまずいて、とりあえず後回し。

次にスクリプトを書いて実行する方法を探して、以下を発見
 ★MySQLのCRON自動バックアップ – overseas*fun
実行時に

RMFILE=mysql.`date -v -”$KEEPDAY”d +%y%m%d`.gz

で“-v”に関してエラーが出てたので、こちらのページを参考に編集
 ★MySQLの定期的バックアップ(cron) : Project MultiBurst
最終的にこんな感じになりました。

#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin

KEEPDAY=10
TODAY=`date +’%y%m%d’`
DBDUMP_FILE=mysql.$TODAY
RMFILE=mysql.`date “-d$KEEPDAY days ago” +%y%m%d`.gz
HOME_DIR=/home/testdir
BACKUP_DIR=$HOME_DIR/dbbackup

cd $BACKUP_DIR

mysqldump -Q  \
–user=dbuser –password=dbpassword testdb >\
$DBDUMP_FILE

gzip $DBDUMP_FILE >/dev/null 2>&1

if [ $? != 0 -o ! -e $DBDUMP_FILE ]; then
echo “SUCCESS! MAYBE!”
rm -f $RMFILE
exit 0
fi

クーロン出の実行は、レンタルサーバの管理画面から設定できたので割愛しますが、上記の参考にしたサイトにも書いてますね。

■その他参考
 ★MySQLのバックアップをcronを利用して定期的に行おう!! (プログラマ 福重 伸太朗 ~基本へ帰ろう~)