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を利用して定期的に行おう!! (プログラマ 福重 伸太朗 ~基本へ帰ろう~)

バックアップ/復旧時のtmpディレクトリの場所を移動【MovableType】

以前、バックアップしたMobavleTypeのデータを復旧すべくtmpフォルダの修正方法をググッたメモ

 “mt-config.cgi”ファイルに、

TempDir /var/www/html/(保存先のパス)/tmp/

のと追記するべし。

参考:MTOSメモ「tmp ディレクトリの場所を変更する」/ 日々、思ウコト(遠藤理平)