サーバーのディレクトリ構成

ウェブサイトのコンテンツや共有フォルダのディレクトリは、ホームディレクトリ (/home/users/xxx/xxx)直下のディレクトリ "web" 以下に配置されています。

"web" ディレクトリ内の各ディレクトリの内容は以下のとおりです。

  • www ― メインウェブサイト(www.mtsociety-jp.org)のコンテンツ
  • doc ― サイト管理マニュアル(doc.mtsociety-jp.org)のコンテンツ
  • excom ― 共有フォルダ
  • ml ― 一斉メール配信フォーム(ml.mtsociety-jp.org)
  • bin ― バックアップスクリプト等

”www" ディレクトリ(Webサイトのコンテンツ)の内容は、以下のとおりです。

  • pub ― 公開するPDFファイル等をアップロードするフォルダ
  • nl ― ニュースレターをアップロードするフォルダ
  • news, img ― 旧サイト(「以前のお知らせ」)のコンテンツ(以後使用しない)
  • wp-* ― WordPress の構成ファイル、メディアライブラリのコンテンツ等

コンテンツ、データベースのバックアップ

ディレクトリ "web" 以下の全ファイルと WordPress のデータベースをホームディレクトリ直下のディレクトリ "backup" に定期的にバックアップするようにしました。

ロリポップユーザーページの「cron 設定」で、毎週月曜日の午前5時にバックアップスクリプトを実行するように設定しています。

週に一回、バックアップが実行された日付のフォルダに、"web" ディレクトリ以下の全ファイルと WordPress のデータベースのバックアップ(sqldump-www.gz, sqldump-doc.gz)が作成されます。

定期的なバックアップ以外に、特定の時点でのスナップショットを作成したい場合は、ロリポップユーザーページの「cron 設定」メニューで「Weekly Backup」と同じジョブを任意の日時に設定して、バックアップを実行して下さい。

なお、バックアップの世代数が50を超えると、古いバックアップから自動的に削除されます。

参考: rsyncだけで実現する!ファイルのバックアップ手法6選 【コマンド例編】

バックアップからのコンテンツの復元

万一、誤操作等によって、ウェブサイトのコンテンツが崩壊してしまったような場合には、SSH でサーバーにログインして、バックアップからコンテンツを復元することができます。

(実行例)

(1) まず、ディレクトリ "www" を一旦削除する。

$ cd ~/web
$ rm -rf www

(2) 次に、ファイルをバックアップからコピーする

$ cp -a ~/backup/20210629/web/www www

(3) 最後に、mysql コマンドで、データベースのバックアップをインポートする。

$ gunzip -c ~/backup/20210629/sqldump-www.gz | mysql -hserver -uusername -ppassword db_name

server(データベースサーバー)、username(ユーザー名)、passowrd(パスワード)、db_name(データベース名)の部分は、共有フォルダの「サーバー関連メモ」を参照してください。