【WordPress複数サイト管理者必見】WordPressサイトを一気にバックアップする方法

wordpress backupCMS
Photo by Javier Garcia Chavez on Unsplash

WordPressのバックアップ方法を Sagasoon.

以前からちょくちょく記載するようになりました WordPressの管理のお話も、今日でもう何回目でしょうか。
いつも使っているプラグインの紹介や、はたまたpluginを作ってみよう的なお話、SEOのお話や Javascript のお話。
公開の日付が順不同で、何がなんだか?的なところがありますが、そこはご容赦ください。
尚、WordPress関連の記事は、下記からたどれます。

WordPress関連の記事
WordPressに纏わる記事一覧です。インストール・バックアップ、プラグインの紹介や作成、Javascriptのお話や、その他 WordPressサイトの管理方法。はたまたSEO対策まで記載しています。

バックアップは自動でやろう

さて、今日はバックアップです。
毎回、サイトへ訪れて、バックアップするのは非常にめんどくさいので、コマンドで済ませます。
コマンドですませば、自動的にコマンドを実行させる方法などありますので(cron等)、ほったらかし運用も可能かと。

それではご紹介してまいります。

前提条件

いつもの通り、wp-cli を使います。
インストールされていない方は、インストールしておいてください。

Command line interface for WordPress | WP-CLI

尚、今回も シェルを使いますので、SSHなどでbashが使えることが前提です。

バックアップ対象等

バックアップするものは下記の通り。

  • wordpressサイトのDB全部
  • wordpressのディレクトリ全部
  • この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複数サイト管理者必見】複数のWordPressサイトを一気に最新版に更新する方法
    WordPressを使ったブログを、複数持ってますよという方も結構いるんではないでしょうか。私も相当ありますが、毎回、更新が疲れる疲れる。そんな方にお勧めなのが、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などを使ってやらせた方がいいかと。

    それでは!


    炭酸野郎

    今日も何かを Sagasoonを運用してます。炭酸野郎です。
    皆さんの「何か」が探せるべく、記事書いてます。
    新卒で中堅SIerに就職→10年ちょいで退職→フリーランス→起業。副業としてのブログに目覚める(今ここ)。
    時間作って、色々なことがやりたいお年頃です!

    炭酸野郎をフォローする
    CMSwordpressブログブログを歩くwp-cli生活IT
    炭酸野郎をフォローする
    SAGASOON

    コメント

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