WordPressのデータをBox.comにバックアップする

転ばぬ先の杖 バックアップということで
ドキュメントルート以下とデータベースのデータをバックアップしてみた。
環境はCentos7です。

Box.comを選んだ理由

無料アカウントで10GB容量もらえるのと、
Webdavでマウントできるので選んでみました。

1.Boxのアカウントを作成

2.Boxをマウントできるようにする

  • yumでdavfs2をインストール
yum install davfs2
  • マウントポイントを作成
mkdir /mnt/box
  • davfs2を設定
vi /etc/davfs2/secrets
一番最後に以下を追加
https://dav.box.com/dav
Boxアカウント(メールアドレス) パスワード
  • マウントして確認
mount -t davfs https://dav.box.com/dav /mnt/box
df -h
ファイルシス                      サイズ  使用  残り 使用% マウント位置
(略)
https://dav.box.com/dav
50G 716M 50G 2% /mnt/box umount /mnt/box

3.バックアップ用のスクリプト

  • BOXをマウント、マウント先にバックアップ、マウント解除という流れ
  • DBのパスワードとかドキュメントルートのパスとかは変更してね
vi /root/wp-backup.sh
#!/bin/sh
# バックアップ先ディレクトリ
backuppath='/mnt/box/backup'
# Boxをマウント
mount -t davfs https://dav.box.com/dav /mnt/box
# DBバックアップ
mysqldump --opt --all-databases --events --default-character-set=binary -u root --password=PASSWORD | gzip > $backuppath/wordpress.sql.gz
# WordPressディレクトリバックアップ
tar zcf $backuppath/nokono.com.tar.gz -C /var/vhost nokono.com
# Boxをアンマウント
umount /mnt/box

4.実行後の確認

mount -t davfs https://dav.box.com/dav /mnt/box
ls -alh /mnt/box/backup/
合計 25M
drwxr-xr-x.  2 root root  152  6月 14 16:14 .
drwxr-xr-x. 10 root root  328  6月 14 16:41 ..
-rw-r--r--.  1 root root  24M  6月 14 16:14 nokono.com.tar.gz
-rw-r--r--.  1 root root 480K  6月 14 16:14 wordpress.sql.gz

5.cronに登録

  • 1日1回朝7時に実行
crontab -e
00 07 * * * /root/wp-backup.sh

今後の課題

  • 無料アカウントは1ファイル250MBまでなのでそれくらいになったら差分バックアップとかを考える

コメント