私は、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 か月間実行中)。ただし、このような設定からバックアップを迅速に復元するにはどうすればよいのでしょうか。もちろん、上記のコードに問題がある場合は、ぜひご指摘ください。