この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ども。あいしんくいっと(@ithinkitnet)です。
RaspberryPI2を使い始めてどの位の時が流れたのだろうか・・・。
というのはさておき、今回は「RaspberryPI2を使ってWordPressのバックアップを定期的に取る方法」をご紹介したいと思います。
(まぁ、RaspberryPI2でなければならないワケではないのですが・・・それは)
WordPressのバックアップについてググッてみたんですけど、どれもこれもプラグインが必要だったり、phpMyAdminといったものを使ったバックアップ手法ばかり紹介されていて正直面倒です。
サーバについてある程度知識があるのであれば、DBエクスポートとWordPressの特定データを取得しておくだけでWordPressのバックアップは事足ります。
というワケで、今回紹介するのは「サーバに関してある程度知識がある方」向けのバックアップ方法です。
必須条件
必須というか、前提条件は以下の通り。
・サーバにパスワード無しでSSH接続(公開鍵認証)出来て、パッケージインストールが自由に出来ること
・バックアップ先に潤沢なHDD領域が確保されていること
・データベースは「MySQL or MariaDB」
ちょっと敷居が高い・・・?
WordPressでバックアップしておくべきモノは?
WordPressは大きく分けてWeb(php含む)、DB部分に分かれています。
大まかにWeb部分には画像データやプラグインデータが置かれていて、DB部分には投稿した記事データが格納されています。(細かい部分はあるのでしょうがw)
ということを踏まえ、個人的には以下のデータをバックアップすれば事足りると思っています。
・wp-content以下の「plugins,themes,uploads」
・DB内のWordPress用データ
MariaDB [(none)]>; show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ithinkitnet | ←私の環境だとコレ!
| mysql |
| performance_schema |
+--------------------+
どのデータベースが使われているのかは「wp-config.php」をみれば分かります。
~略~
/** WordPress のためのデータベース名 */
define('DB_NAME', 'ithinkitnet');
~略~
さらにデータベースへ接続するユーザとパスワードも記載されているのでコチラを控えておきましょう。
~略~
/** MySQL データベースのユーザー名 */
define('DB_USER', '<任意のユーザ>');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', '任意のパスワード');
~略~
上記のデータを取得しておけば、リストアする際にも困らずに済むように思います。
まぁ、環境によって多少の過不足はあるかも知れないですが・・・。
RaspberryPI2にスクリプトを仕込んで定期的に実行させる
私の環境では、RaspberryPI2に簡単なバックアップスクリプトを仕込んで定期的に処理をさせてます。
エラーハンドリングも分岐も関数定義も無い、適当かつベタ書きなスクリプトですが、参考程度に載せておきますw
個人レベルだとコレでじゅうぶん事足りてますw
========= 参考 =========
#!/bin/sh
# Local Backup Directory
WorkDir=/backup
BackupDir=${WorkDir}/$(date +%Y%m%d)
R_BackupDir=<WordPressのバックアップフォルダ:ext)/var/www/wordpress>
# BKDir Check
if [ ! -e ${BackupDir} ]; then
mkdir -p ${BackupDir}
chmod 755 ${BackupDir}
fi
# Make Backup1 Directory
if [ ! -e ${BackupDir1} ]; then
mkdir ${BackupDir1}
chmod 755 ${BackupDir}
fi
# Make Backup2 Directory
if [ ! -e ${BackupDir2} ]; then
mkdir ${BackupDir2}
chmod 755 ${BackupDir}
fi
# Make Backup3 Directory
if [ ! -e ${BackupDir3} ]; then
mkdir ${BackupDir3}
chmod 755 ${BackupDir}
fi
# MariaDBバックアップ
ssh <ユーザ名>@<接続サーバIP or FQDN> "mysqldump -u <任意のユーザ> -p<任意のパスワード> <DB名> > /<バックアップ先>/<バックアップDB名>_$(date +%Y%m%d).sql"
# ローテーション
# ssh <ユーザ名>@<接続サーバIP or FQDN> ”find + xargs" とかでよしなに
# SCPバックアップ
scp -rp <ユーザ名>@<接続サーバIP or FQDN>:${R_BackupDir}/themes ${BackupDir}/
scp -rp <ユーザ名>@<接続サーバIP or FQDN>:${R_BackupDir}/uploads ${BackupDir}/
scp -rp <ユーザ名>@<接続サーバIP or FQDN>:${R_BackupDir}/plugins ${BackupDir}/
scp -rp <ユーザ名>@<接続サーバIP or FQDN>:/<バックアップ先>/<バックアップDB名>_$(date +%Y%m%d).sql" ${BackupDir}/
# Old Backup Erace
# find + xargsとかでよしなに
========= 参考ここまで =========
上記スクリプトですが、実際に動かしているスクリプトから編集かけてるので、そのままだと動きませんw
利用するのであれば、ご自身でカスタマイズして使ってくださいね。
私の環境では上記スクリプトでRaspberryPI2から一方的にバックアップ取得したあと、取得したバックアップデータを自宅NASに転送してます。(RaspberryPI2のローカルディスクは16GBしかないので)
「備えあれば、憂いなし」
定期的にWordPress環境をバックアップして、万が一に備えましょう!