WordPress のバックアップ

はじめに

WordPress のバックアッププラグインは数多く在り、それらの記事が多数在りますが、プラグインの更新によってトラブルが起きたり、有料オプションに加入しないとフルバックアップできなかったりする事が多々あります。

それらのものを利用しなくても簡単・確実・無料のバックアップ方法がありますのでその方法を以下に記します。

シェルスクリプトを利用したバックアップ

現在、ほとんどのサーバーはシェルスクリプトを利用できると思います。ほぼ10行程でバックアップできてしまうのでおすすめです。

シェル上で、mysqldump コマンド(データベースをファイルにまとめたり、ファイルからデータベースに書き込む)と、zip コマンド(ファイルをアーカイブ)、rm コマンド(ファイルを削除)の3つを利用します。また、以下のスクリプトでは、3日間分のバックアップをし、それ以前のものは削除するようにしています。

#!/bin/sh

# 3日間のバックアップを維持
period=3

# backup というディレクトリにファイルを作成
dirpath='./backup'

# ファイル名を指定
filename1=`date +%y%m%d".ホスト名"`

# 3日間を過ぎたファイルを削除対象とする
oldfile1=`date --date "$period days ago" +%y%m%d".ホスト名"`

# mysqldump で、sql ファイルを書き出す
mysqldump --add-drop-table -h localhost -u データベースユーザー名 -pパスワード データベース名 > $dirpath/$filename1.sql

# WordPress のディレクトリ毎1つのファイルにアーカイブする
zip -r $dirpath/$filename1.wp.zip ./public_html/ホスト名/wordpress

# 削除対象のファイルを削除
rm -f $dirpath/$oldfile1.sql
rm -f $dirpath/$oldfile1.wp.zip

exit

シェルを利用した復元

復元時はシェルで2行コマンドを打てば良いだけです。上記の例で、ファイル名が 221210.ホスト名.sql 221210.ホスト名.zip 2ファイルだった場合を以下に記します。

# データベースを復元
mysql -h localhost -u データベースユーザー名 -pパスワード データベース名 < 221210.ホスト名.sql
# ファイルを復元
unzip 221210.ホスト名.wp.zip

Cron を利用した定時バックアップ

上記を試してみて上手くいくようなら、以下のように、Cron に定時バックアップを登録します。これもほとんどのサーバーでサポートされていると思います。

/bin/sh /home/シェルスクリプトのディレクトリ/シェルスクリプト名.sh >/dev/null 2>&1

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください