AWS Lightsail - Wordpress スタック - バックアップ スクリプト

AWS Lightsail - Wordpress スタック - バックアップ スクリプト

私は、Bitnami WordPress Stack の常連ユーザーです (クライアントの Web サイトの設定やメンテナンスなど)。

以前は Updraft バックアップ プラグインを使用して WordPress をバックアップし、それを S3 アカウントにプッシュしていましたが、このようなセットアップでは多くの問題があることがわかりました。

サーバー レベルのバックアップの方がはるかに優れていることがわかりました。

以下は、ファイルとデータベースのバックアップを取り、それを S3 にプッシュし、7 日以上経過したファイルがないか確認し、存在する場合は削除するために作成したスクリプトです。

バックアップスクリプト.sh

#!/bin/bash
    time=$(date +%d-%m-%Y-%H.%M.%S)
    . /home/bitnami/aws_credentials
    /opt/bitnami/mysql/bin/mysqldump -u DATABASE_USER --password="USER_PASSWORD" --result-file=/home/bitnami/apps/backups/database-$time.sql bitnami_wordpress
    tar -pcf /home/bitnami/apps/backups/database-$time.tar.gz /home/bitnami/apps/backups/database-$time.sql
    tar -pcf /home/bitnami/apps/backups/backup-$time.tar.gz /opt/bitnami/apps/wordpress
    find . -name '/home/bitnami/apps/backups/*.sql' -type f -delete
    aws s3 cp /home/bitnami/apps/backups/database-$time.tar.gz s3://maintenance-websites-backups/folder_name/
    aws s3 cp /home/bitnami/apps/backups/backup-$time.tar.gz s3://maintenance-websites-backups/folder_name/
    find /home/bitnami/apps/backups -type f -mtime +7 -delete

これを実行した後:chmod +x /home/bitnami/apps/backup_script.sh

毎日午前 1 時にスクリプトを実行するように cronjob を設定します。

sudo crontab -e

0 1 * * * /home/bitnami/apps/backup_script.sh > /tmp/backup.log 2>&1

ファイルを S3 にプッシュするには AWS CLI が必要です。

sudo apt-get install awscli
aws configure

参照:詳細は、こちらを参照してください。

aws_認証情報

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=

このコードは完全に機能しており、今のところ問題は発生していません (10 の Web サイトで 4 か月間実行中)。ただし、このような設定からバックアップを迅速に復元するにはどうすればよいのでしょうか。もちろん、上記のコードに問題がある場合は、ぜひご指摘ください。

関連情報