AWS Lightsail - Wordpress 堆栈 - 备份脚本

AWS Lightsail - Wordpress 堆栈 - 备份脚本

我是常规 bitnami wordpress 堆栈用户(为客户设置网站并维护它等)。

我曾经使用 Updraft 备份插件来备份 wordpress 并将其推送到 S3 帐户 - 但是,我发现这样的设置存在很多问题。

我发现服务器级别的备份会好得多。

这是我创建的脚本,用于备份文件和数据库,然后将其推送到 S3,然后检查是否有任何文件超过 7 天,如果有,则将其删除。

备份脚本

#!/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

设置 cronjob 每天凌晨 1 点执行脚本:

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

参考:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html

aws_credentials

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=

此代码完全可以运行,到目前为止我还没有遇到任何问题(在 10 个网站上运行了 4 个月)。但是,我想知道如何才能从这样的设置中快速恢复备份?当然,如果有人发现上述代码有任何问题,请指出!

相关内容