我们有一个ERP系统,它使用SQL Server DB,每天在Windows PC上生成DB备份文件。
我们的经理希望认识到,一天中的数据库备份文件可以每天自动定期地上传和保存到AWS S3桶中。我们已经注册了一个AWS帐户,并专门创建了一个桶。考虑到AWS S3的存储成本,预计只应将最新的十个DB备份文件保存在存储桶中。
我们似乎需要AWS、S3、CLI和一些脚本编码来实现这一需求。它是用.bat代码实现,还是用Windows脚本代码实现?如何检查S3桶中是否已经有10个DB备份文件?如果是,如何在上传最新版本之前删除最老的?
有类似的示例代码吗?谢谢!
发布于 2022-07-20 04:08:08
您可以为此创建一个cron作业。此外,您还需要安装aws cli。如果您将DB托管在linux中,那么以下代码可能会对您有所帮助:
#!/bin/bash
NOW=$(date +"%Y-%m-%d")
NOW_TIME=$(date +"%Y-%m-%d %T %p")
NOW_MONTH=$(date +"%Y-%m")
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_DATABASE="wordpress"
MYSQL_USER="user"
MYSQL_PASSWORD="password"
BACKUP_DIR="/home/mkyong/backup/$NOW_MONTH"
BACKUP_FULL_PATH="$BACKUP_DIR/$MYSQL_DATABASE-$NOW.sql.gz"
AMAZON_S3_BUCKET="s3://mkyong/backup/linode/mysql/$NOW_MONTH/"
AMAZON_S3_BIN="/home/mkyong/.local/bin/aws"
#################################################################
mkdir -p ${BACKUP_DIR}
backup_mysql(){
mysqldump -h ${MYSQL_HOST} \
-P ${MYSQL_PORT} \
-u ${MYSQL_USER} \
-p${MYSQL_PASSWORD} ${MYSQL_DATABASE} | gzip > ${BACKUP_FULL_PATH}
}
upload_s3(){
${AMAZON_S3_BIN} s3 cp ${BACKUP_FULL_PATH} ${AMAZON_S3_BUCKET}
}
backup_mysql
upload_s3https://stackoverflow.com/questions/73045827
复制相似问题