WordPress のバックアップを考える1

昔のパソコン

少しずつ記事もたまって行きますので 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)

ただ、このままではバックアップが永遠溜まってしまってディスク容量を圧迫しますので、次回は古いバックアップデータの自動削除のスクリプトを考えます

コメント

タイトルとURLをコピーしました