我已经将我的第一个站点移动到EC2微实例,现在项目正在运行我正在尝试备份数据库和图像文件夹,如果可能的话在亚马逊(Glacier?S3?)中。 我已经阅读了很多关于它的内容,但我确信之前有人已经编写了这个脚本。
堆栈: - Ubuntu Server 12.04 LTS - Apache 2.2.1 - PHP 5.4.4
答案 0 :(得分:1)
通常,您希望使用EBS快照作为第一道防线。制作一个脚本,每天创建一次EBS备份并删除旧版本。把它放在cron中。
如果您想要“额外保险”,如果EBS / EC2存在大量问题,您可以考虑使用S3。使用其他答案中指出的s3sync
。最好使用压缩。备份之间没有“成本分摊”,就像EBS快照一样。
Glacier有很长的等待时间(很多小时)和最短的恢复时间(如果你在90天之前恢复,你会受到惩罚)。因此,如果要长时间存储大量备份,则只应查看它。你不能用它来进行灾难恢复,除非你被耽搁了好几个小时。
答案 1 :(得分:0)
这很容易做到。你现在可能想要使用s3。
s3cmd
。它可能已在您的存储库中可用您可以将所有这些编写成一个简单的bash脚本,并定期执行cron。请记住,备份确实会对性能产生影响,应该在非高峰期安排。
答案 2 :(得分:0)
这是非常基本的脚本,这些是以下步骤:
示例脚本到MYSQLDUMP并推送到S3
#!/bin/bash
MY_FOLDER="/__PATH_TO_WRITABLE_FOLDER__/"
NOW="`date +%Y-%m-%d-%R`"
FILE=$MY_FOLDER"___FILE_NAME___"$NOW".sql"
mysqldump -h localhost -u USER_DB -pPASSDB -c --add-drop-table --add-locks --quick --lock-tables DBNAME > $FILE
s3cmd put $FILE s3://___YOUR_BUCKET_NAME___
echo "`date -u`" "BACKUP DONE - MySQL uploaded to hipespace ^^ -> ".$FILE >> /var/log/my_backups_to_s3
注意:
无论如何这只是备份数据库,尝试s3cmd文档,他们有另一个命令“sync”,你可以用来推送你的图像,
希望有所帮助