少しずつ記事もたまって行きますので WordPress のバックアップを考えます
バックアップしておきたいフォルダがあるのがバックアップ元 :WebサーバA
バックアップを保存しておくのがバックアップ先 :サーバB
※よく混乱しますので間違えないようにお願いします
方法としては、プラグインを使ってやる方法とスクリプトで必要なフォルダ、データベースをバックアップする方法があると思いますが、私はプラグインを使わずにWebサーバAのデータをサーバBにバックアップします
rsync を cron で動かしパスワードなしでサーバBにアクセスさせるために、ssh の鍵認証を設定しておきます
まずはバックアップ先になるサーバBに backup フォルダとその中に wordpress フォルダを作っておきます
サーバB~$ mkdir ~/backup; mkdir ~/backup/wordpress
バックアップ元のWebサーバAに ssh で入りwordpressフォルダを rsync でサーバBに送るスクリプトを書きます
WebサーバA~$ mkdir ~/commands
WebサーバA~$ vi ~/commands/wp-backup.sh
#!/bin/bash
SRC=/var/www/wordpress
# userはあなたのユーザー名、サーバBはバックアップ先のホスト名もしくはIPアドレス
SSH_TO=user@サーバB
DEST=~/backup/wordpress/$(date "+%Y%m%d")
# -e "ssh -p 2022"は ssh のポートを2022に変更している場合
rsync -a --delete -e "ssh -p 2022" $SRC $SSH_TO:$DEST
スクリプトを実行可能にします
WebサーバA~$ chmod +x ~/commands/wp-backup.sh
スクリプトをテストします。ターミナルで直接スクリプトファイルを指定してやれば実行されます
WebサーバA~$ ~/commands/wp-backup.sh
サーバBのバックアップ用に作ったフォルダに日付のフォルダが出来ていれば成功です
wp-backup.shを自動実行させるために cron を設定します
cron に対する当サイトの考え方はリンクを参照してください
WebサーバA~$ vi ~/cron/cron.txt
0 2 * * 3,6 /home/user/commands/wp-backup.sh
WebサーバA~$ crontab ~/cron/cron.txt
上記は、水曜日と土曜日の午前2時にバックアップをとる設定です。wordpressフォルダが決定しているのはホームページのデザインで実際書き溜めた記事はデータベースに格納されています
データベースのバックアップスクリプトはまたあとで紹介します
アップデート等で表示が崩れた場合やいろいろ試していていじくりぶっ壊したときなどはバックアップデータと稼働しているwordpressフォルダを交換するだけで復旧できます(入替えるときに所有権の変更を忘れずにchown)
ただ、このままではバックアップが永遠溜まってしまってディスク容量を圧迫しますので、次回は古いバックアップデータの自動削除のスクリプトを考えます
コメント