我已将我的第一个站点移至 EC2 微型实例,现在该项目正在运行我正在尝试备份数据库和图像文件夹,如果可能的话,在 Amazon(Glacier?S3?)内。我已经阅读了很多关于它的内容,但我相信之前有人编写过这个脚本。
堆栈:-Ubuntu 服务器 12.04 LTS-Apache 2.2.1-PHP 5.4.4
我已将我的第一个站点移至 EC2 微型实例,现在该项目正在运行我正在尝试备份数据库和图像文件夹,如果可能的话,在 Amazon(Glacier?S3?)内。我已经阅读了很多关于它的内容,但我相信之前有人编写过这个脚本。
堆栈:-Ubuntu 服务器 12.04 LTS-Apache 2.2.1-PHP 5.4.4
通常,您希望使用 EBS 快照作为第一道防线。制作一个脚本,每天创建一次 EBS 备份并删除旧的备份。把它放在cron中。
如果您想要“额外保险”,以防 EBS/EC2 出现大量问题,您可以考虑 S3。s3sync
按照其他答案中的说明使用。最好使用压缩。备份之间没有像 EBS 快照那样的“成本分摊”。
Glacier 的恢复等待时间很长(几个小时)和最短恢复时间(如果在 90 天之前恢复,则会受到处罚)。因此,如果您想长时间存储大量备份,您应该只考虑它。你不能用它来进行灾难恢复,除非你可以忍受几个小时的停机。
这很容易做到。您现在可能想使用 s3。
s3cmd
. 它可能已经在您的存储库中可用您可以将所有这些一起编写成一个简单的 bash 脚本,并定期使用 cron 执行它。请记住,备份确实会在一定程度上影响性能,并且应该安排在非高峰期。
这是非常基本的脚本,这些是步骤:
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 文档,他们有另一个命令“同步”,您可以使用它来推送您的图像,
希望能帮助到你