我有一个可以处理大量文本文件的网站 – 现在他们占用了大约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
更多细节
点击我来阅读更多关于增量备份