WordPressのバックアップ方法を Sagasoon.
以前からちょくちょく記載するようになりました WordPressの管理のお話も、今日でもう何回目でしょうか。
いつも使っているプラグインの紹介や、はたまたpluginを作ってみよう的なお話、SEOのお話や Javascript のお話。
公開の日付が順不同で、何がなんだか?的なところがありますが、そこはご容赦ください。
尚、WordPress関連の記事は、下記からたどれます。
バックアップは自動でやろう
さて、今日はバックアップです。
毎回、サイトへ訪れて、バックアップするのは非常にめんどくさいので、コマンドで済ませます。
コマンドですませば、自動的にコマンドを実行させる方法などありますので(cron等)、ほったらかし運用も可能かと。
それではご紹介してまいります。
前提条件
いつもの通り、wp-cli を使います。
インストールされていない方は、インストールしておいてください。
尚、今回も シェルを使いますので、SSHなどでbashが使えることが前提です。
バックアップ対象等
バックアップするものは下記の通り。
この2つのファイルを、指定されたディレクトリにバックアップします。
尚、バックアップファイルは、巨大になることが多いので、ストレージの残容量にはご注意を。
バックアップのシェル
早速、バックアップのシェルをご紹介します。
ソースにある下記の3つは個人の環境によって変更ください。
SITE_DOMAIN_NAME=’<<
>>’
SITE_PATH=’<<>>’
BACKUP_BASE_DIR=’<<>>’
SITE_PATHに格納されているwordpressのディレクトリ全部を、BACKUP_BASE_DIR で指定されたディレクトリに、 SITE_DOMAIN_NAME の名前を使ってバックアップファイルを作ります(DBも一緒に保存します)
尚、バックアップファイルの名前は、バックアップした日付をつけて保存されます。
不要になったバックアップは、適宜削除してください。
#!/bin/sh # WP command alias WP_COMMAND='/usr/local/php/7.3/bin/php ~/bin/wp' # #config # SITE_DOMAIN_NAME='<<>>' SITE_PATH='<< >>' BACKUP_BASE_DIR='<< >>' # DATE_NAME=$(date +%Y%m%d_%H-%M-%S) BACKUP_FILE_NAME_DB="$BACKUP_BASE_DIR/$SITE_DOMAIN_NAME.$DATE_NAME.sql" BACKUP_FILE_NAME_SITE="$BACKUP_BASE_DIR/$SITE_DOMAIN_NAME.$DATE_NAME.zip" # # backup wordpress site # cd $SITE_PATH WP_COMMAND db export $BACKUP_FILE_NAME_DB zip -r $BACKUP_FILE_NAME_SITE $SITE_PATH $BACKUP_FILE_NAME_DB
WP_COMMANDは、wp-cli のコマンドです。詳細について知りたい方は、下記の記事で話していますので、そちらを参照くださいませ。
復元
バックアップをするなら、復元もありますよね。
その話については、また別記事にしますので、おまちくださいませ。
実際にやってみた
こんな感じでやってみました。
- wordpressインストール
- 記事作成
- DBバックアップ
- DBを破棄
- DB復元
wordpressインストール
適当にドメインを作って、サンプルサイトを作ってみましした。
記事作成
適当に1件記事を投稿してみます。
念のためDBもみてみましたが、テーブルも全部ありました(あたりまえですが)
DBバックアップ
上記シェルを動かしてみました。
バックアップ中対象が多いのでずらずらと出てきますが、辛抱強くまちます。
[user@user_001 create_wordpress_site]$ ./backup_wordpress_site.sh Success: Exported to '/user/src/wordpress/create_wordpress_site/backup/what.sagasoon.com.20200215_10-17-43.sql'. :
DBを破棄
phpmyadminで、WordPressで使うテーブルをすべて破棄してみました。
サイトにアクセスすると、インストール画面が出てきます。
まっとうな話ですね。
DBを復元
次回説明いたしますが、下記の記事の復元(ストア)方法で復元してみましたが、問題なく前と同じ内容が出てきます。
まとめ
バックアップは、1分1秒リアルタイムでする必要はないでしょうが、投稿が多い方は一日1回程度はしておいた方が無難かもしれません。
ブロガーの方で、相当数記事をアップされている方などは、記事が消えるのは痛いでしょうからね。
尚、バックアップは、冒頭でもお話しましたが自動でやらせるのが一番です。
cronなどを使ってやらせた方がいいかと。
それでは!
コメント