备份一个非常大的网站(〜40GB)

我有一个可以处理大量文本文件的网站 – 现在他们占用了大约40GB的数据,并随着时间的推移而增加。 我需要做一个完整的每日备份。 我目前的策略是制作一个密码保护的存档,并使用以下命令将其存储在保存箱中:

tar cfz - /var/www/mysite | openssl enc -aes-256-cbc -e -k "b@ckupPassword" > /home/user/Dropbox/server_backups/sources/2013_01_04_0500_mysite_source_encrypted.tgz 

它可以工作,但是创build一个档案大约需要14个小时,而且会消耗大量的IO,而且随着数据量的增加,这个数据会变得更糟。

备份大量文件的策略是什么?

我会使用rsync ,只要我有足够的空间。

这个例子有一个完整的备份,并保持一个星期的增量。

 #!/bin/bash DAY=$(date +%A) if [ -e /bkp/incr/$DAY ] ; then rm -fr /bkp/incr/$DAY fi ionice -c 3 rsync -a --delete --inplace --backup --backup-dir=/bkp/incr/$DAY /var/www/mysite/ /bkp/full/ &> /dev/null 

该脚本可以很复杂地存储在异地,在收件箱文件夹等。

如果您真的需要使用tar ,您可以跟踪修改后的文件

 tar zcvf - --listed-incremental=/var/log/mysite.tarlog /var/www/mysite | openssl enc ... 

如果您想要完整备份,请删除/var/log/mysite.tarlog

如上所述,rsync似乎是备份整个站点的最佳方式。 然而,我build议你实现某种复制文件系统,就像一个简单的GlusterFS卷与复制。

复制不是备份,但它可以帮助您减less备份的I / O影响,并最终为将您的网站稍后扩展到群集提供坚实的基础。

在这种情况下最好使用增量备份机制。

使用rsync你可以进行增量备份。

点击我的关于使用rsync更多细节

点击我来阅读更多关于增量备份