WordPressのDBとソースファイルをバックアップ/bashのスクリプトで
ワードプレスのデータベースとソースファイルをバックアップするスクリプトを作成してみました。
bashでテストしました。
- データベースをdumpしてzipに圧縮して保存
- ソースファイルをINTERVAL_DAYの指定日の間隔で保存
参考にさせていただきました
スクリプト
#!/bin/bash DB_NAME=【データベース名】 DB_USER=【データベースのユーザ名】 DB_PASSWORD=【データベースのパスワード】 KEEPDAY=7 INTERVAL_DAY=3 PREFIX=【バックアップ名】 SERVER=localhost NOWDATE=`date +%Y%m%d` NOWDAY=`date +%d` DESTDIR=【バックアップする場所】 DUMPFILE=$PREFIX.$NOWDATE.dump.gz SRCDIR=【ワードプレスのソースがある場所】 SRCTARFILE=$PREFIX.$NOWDATE.src.tar.gz cd $DESTDIR # MySQLダンプ(zipで圧縮する) echo $DUMPFILE mysqldump --single-transaction -u $DB_USER -p$DB_PASSWORD $DB_NAME --opt | gzip > $DUMPFILE # ソーフファイルはインターバル(INTERVAL_DAY)を指定してバックアップを取る事にする if [ `expr $NOWDAY % $INTERVAL_DAY` == 0 ]; then #ログは出さない echo $SRCTARFILE tar zcf $SRCTARFILE $SRCDIR fi # 処理判定 # -e ファイル 指定したファイルが存在すれば真を返す if [ ! -e $TARFILE ]; then echo "backup faild -- ($DUMPFILE)" exit 1 fi # ソースファイルのチェックはこれではマズイのでもう一度考える #if [ ! -e $SRCTARFILE ]; then # echo "backup faild -- ($SRCTARFILE)" # exit 1 #fi # 古くなったファイルを削除 echo "以下のファイルを削除しました" find . -mtime +$KEEPDAY find . -mtime +$KEEPDAY -exec rm -f {} \; echo "終了!"
残りの作業
crontabでスケジュール作って登録する。