レンタルサーバーの自動バックアップ

レンタルサーバー上にあるブログやらデータベースやらサイトの公開ファイルやらを定期的にバックアップするように設定しました。

バックアップ対象

サーバー:さくらレンタルサーバー(スタンダードプラン)

  • ブログ:WordPress
  • データベース:MySql
  • サイトの公開ファイル

バックアップ方法

■データベースとサイトの公開ファイル

スクリプトを作成してレンタルサーバーのcrontabに毎日処理を行うように登録

■ブログ

WordPressのプラグインWP DBManagerを使用してバックアップ
(参考:No Second Life – WordPressのバックアップと最適化! WP-DBManagerが最高すぎる件!!ほか)

バックアップ用スクリプト

  • バックアップスクリプトとデータ保管場所: ~/backup
  • サイトの公開ファイルのトップディレクトリ:~/www
  • スクリプトファイル名:backup.sh
  • データベース認証用ファイル:myconf
  • 外部保管先:専用のGmailアカウントを作成
  • レンタルサーバー上にバックアップを保管する期間:7日間

■スクリプトの内容

#!/bin/sh
DBBACKUP_FILENAME="dbbackup-`date '+%Y-%m-%d'`.tar.gz"
WWWBACKUP_FILENAME="wwwbackup-`date '+%Y-%m-%d'`.tar.gz"
KEEPDAY=7
OLDDATE=`date -v -"$KEEPDAY"d '+%Y-%m-%d'`
cd ~/backup
/usr/local/bin/mysqldump --defaults-extra-file=myconf reirou_pban > mysql.dump
/usr/bin/tar chopfz "$DBBACKUP_FILENAME" mysql.dump
/bin/chmod 755 "$DBBACKUP_FILENAME"
/bin/rm mysql.dump
# send Mail
/usr/bin/uuencode "$DBBACKUP_FILENAME" "$DBBACKUP_FILENAME" | /usr/bin/mail -s "reirou_pban backup" *******.backup@gmail.com
/usr/bin/tar chopfz "$WWWBACKUP_FILENAME" ../www
/bin/chmod 755 "$WWWBACKUP_FILENAME"
#remove old files
rmfile="dbbackup-$OLDDATE.tar.gz"
if [ -e $rmfile ]; then
 echo "$rmfile is removing"
 /bin/rm -f $rmfile
fi
rmfile="wwwbackup-$OLDDATE.tar.gz"
if [ -e $rmfile ]; then
 echo "$rmfile is removing"
 /bin/rm -f $rmfile
fi

■データベース認証ファイルの内容

[client]
user=*****
password=*****
host=mysql***.db.sakura.ne.jp
[mysqldump]
default-character-set=binary

■レンタルサーバーのcrontabにスクリプの定期実行を登録

レンタルサーバーのコントロールパネルで設定します。

sakura cron

CRONの設定をクリックして、次のように登録します。

cron登録内容