Pio*_*ski 2 mysql amazon-s3 amazon-ec2 amazon-web-services amazon-rds
我正在尝试从 AWS RDS 自动获取 MySQL 备份。我认为使用 AWS 命令行会很有帮助,我可以使用 EC2 Red Hat 上的 crontab 来自动触发事件。
现在的问题是:如何连接到 RDS、备份 MySQL、将其放在 EC2 上或复制到 S3 并让它每晚运行。
我是 AWS 命令行的新手。请随意删除建议和代码片段。
谢谢!
小智 7
在 EC2 实例上制作一个 cron.sh 文件并将内容放在下面。
mysqldump -h RDS_ENPOINT -u MASTER_USER_DATABASE -p DATABASE_NAME > /backup/bkp.$(date +%Y%m%d).sql
创建其他文件 move_to_s3.sh 并将内容放在下面
#!/bin/bash
echo "starting upload to s3 ..."
TODAY=$(date +%Y%m%d);
month=$(date +"%m");
year=$(date +"%Y");
bucket="mybkp"
file="$year/$month/bkp.$TODAY.tar"
filepath="/backup/bkp.$TODAY.tar"
resource="/${bucket}/${file}"
contentType="application/x-compressed-tar"
dateValue=`date -R`
stringToSign="PUT\n\n${contentType}\n${dateValue}\n${resource}"
s3Key=AKIAI7BE3RKNSsdfsdfASF
s3Secret=sdfksdfkJsdfgd76sdfkljhdfsdfsdfsdf
signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`;
RESPONSE=$(curl -w "%{http_code}" -s -X PUT -T "${filepath}" \
-H "Host: ${bucket}.s3.amazonaws.com" \
-H "Date: ${dateValue}" \
-H "Content-Type: ${contentType}" \
-H "Authorization: AWS ${s3Key}:${signature}" \
https://${bucket}.s3.amazonaws.com/${file} -o /dev/null $1);
echo $RESPONSE;
if [ $RESPONSE -ne 200 ] ; then
echo "There was an issue in transfering DB dbbackup file to S3. Noticed Error Code: $RESPONSE" | mail -s "Issue on transfer to S3" test@gmail.com;
else
rm $filepath;
fi
echo "finished upload."`
Run Code Online (Sandbox Code Playgroud)在半小时的距离内将两者都设置在 cron 中!
希望能帮助到你 :)
| 归档时间: |
|
| 查看次数: |
5879 次 |
| 最近记录: |