サイトのバックアップについて

投稿者:sirius

サイトのバックアップについて

 こちらに記載した通り、Lightsailのインスタンスが破損してしまい、バックアップも取っておらず復旧に手間取りましたので、各種必要データを定期的にバックアップするようにしたいと思います。

 前提条件

 シェルスクリプトでバックアップを行います。以降はホームディレクトリに backup ディレクトリが存在する前提で記載します。

 DBバックアップ

 DBのバックアップスクリプトです。一旦何も考えずに全てのデータベースをバックアップします。

  • username:自身のユーザ名に置き換え
#!/bin/bash

#Backup先のディレクトリ設定
BK_DIR=/home/username/backup

#日時設定
DATE=$(date +%Y%m%d_%H%M%S)

#バックアップ取得
mariadb-dump --all-databases > ${BK_DIR}/db_backup_${DATE}.sql

echo "Backup completed at ${BK_DIR}/db_backup_${DATE}.sql"

 Webサーバディレクトリバックアップ

 Webサーバのディレクトリ(DocumentRoot)のバックアップです。

  • username:自身のユーザ名に置き換え
  • SRC_DIR:自身の環境のDocumentRootパスに置き換え
#!/bin/bash

#Backup先のディレクトリ設定
BK_DIR=/home/username/backup

#バックアップ元のディレクトリ設定
SRC_DIR=/var/www/html/

#日時設定
DATE=$(date +%Y%m%d_%H%M%S)

#バックアップ取得
zip -r ${BK_DIR}/blog_backup_${DATE}.zip ${SRC_DIR}

echo "Backup completed at ${BK_DIR}/blog_backup_${DATE}.zip"

 Webサーバ設定ファイルバックアップ

 Apacheの設定ファイルのバックアップです。必要なconfファイルは適宜追加してください。下記は最低限 httpd.conf と ssl.conf のみバックアップしています。

  • username:自身のユーザ名に置き換え
#!/bin/bash

#Backup先のディレクトリ設定
BK_DIR=/home/username/backup

#バックアップ元のディレクトリ設定
SRC_DIR=/etc/httpd

#日時設定
DATE=$(date +%Y%m%d_%H%M%S)

#バックアップ取得
zip -r ${BK_DIR}/httpd_backup_${DATE}.zip ${SRC_DIR}/conf/httpd.conf ${SRC_DIR}/conf.d/ssl.conf 

echo "Backup completed at ${BK_DIR}/httpd_backup_${DATE}.zip"

 SSL証明書関係のバックアップ

 Let’s Encrypt関連ファイルのバックアップです。

  • username:自身のユーザ名に置き換え
#!/bin/bash

#Backup先のディレクトリ設定
BK_DIR=/home/username/backup

#バックアップ元のディレクトリ設定
SRC_DIR=/etc/letsencrypt

#日時設定
DATE=$(date +%Y%m%d_%H%M%S)

#バックアップ取得
zip -r ${BK_DIR}/ssl_backup_${DATE}.zip ${SRC_DIR}

echo "Backup completed at ${BK_DIR}/ssl_backup_${DATE}.zip"

 動作確認

 スクリプトを作成したら、chmod 700 とかで実行権限を付与して動作確認を行います。

 無事動作したら、cronなどで定期的にバックアップを取るようにするのと、rsync等で別サーバと同期できるようにするとより良いかと思います。

著者について

sirius administrator

コメントを残す