我想将rsnapshot使用的备份目录镜像到第二个位置以获得更高的安全性。理想的解决方案是使用rsync和ssh。我需要为rsync提供哪些参数来保留硬链接(由rsnapshot创建)和符号链接,删除文件,递归复制,删除目标中的文件等?这些文件都在ext3文件系统上。此外,我可以做些什么来避免这样的可能性,即如果源已损坏,那么这些缺陷会反射到镜像上?镜像rsnapshot备份目录
回答
我认为在rsync
手册页中大部分记录了要做什么的选项。特别是,-H
选项(--hard-links
)启用了硬链接检测,而--delete
将导致rsync删除目标上源上不存在的内容。因此,也许是这样的:
rsync -aH --delete /path/to/src/ /path/to/destination
而且我能做些什么,以避免如果源已损坏的缺陷rsynced镜子的可能性?
好吧,那很棘手。你如何发现腐败?我认为唯一真正的解决方案是错开备份的备份(即,将您实际备份到主要目标,然后在您的下一次备份运行之前立即将其rsync同步到次要目标)。这样,如果您检测到有问题,直到下一次备份运行才能恢复。
一个不同的解决方案是将rsnapshot
备份到多个目标,以便实际上从原始来源生成备份到两个不同的位置。这样,如果一个人受到损害,第二个人应该不受影响。
确定所有选项都在手册页中。我只是想确保我不会忘记任何事情。但-a选项似乎非常紧凑。由于两个目的地不会同时可用,因此两个位置的rsnapshot将不可行。难道只有更新的快照才能与镜像同步吗?以这种方式,即使这些位置中的较旧快照在主位置中损坏,它们也会被保留。当然,我需要重复由它添加快照时由rsnapshot执行的重命名... – highsciguy
为防止损坏数据的复制,您可以保留每周备份,并希望在丢失所有备份之前,您会注意到源处的损坏。最好的方法是使用-c,然后它会比较源和目标的校验和以确定是否复制文件。唯一的缺点是它必须读取整个文件,使备份过程更慢。
#!/bin/sh
# Create a Backup of Today
# Definitions
sevendaysago=$(date --date='6 days ago' +%Y-%m-%d-%A)
# Delete backups from 7 days ago
rm -rf /storage/backups/$sevendaysago
mkdir -p /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$username
rsync -aHvz /storage/`date --date=yesterday +\%Y-\%m-\%d`-`date --date=yesterday +\%A`/$host/$user/ /storage/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$user/
rsync -acHvz -e ssh --delete --exclude='logs' [email protected]:/home/tim/ /storage/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$user/
- 1. rsnapshot,多个备份目的地
- 2. 转录日志备份后数据库镜像不同步
- 3. Makefile镜像构建目录
- 4. 镜像目录与Apache htaccess
- 5. 移动Zpanel默认备份目录或Opendir备份目录
- 6. shell脚本备份源目录备份目录
- 7. pclzip备份两个目录
- 8. 文档目录和备份
- 9. 备份大文件目录
- 10. 更改PHP备份目录
- 11. Python脚本备份目录
- 12. InstallShield回滚备份目录?
- 13. 使用rsnapshot和mysqldump来备份远程mySQL数据库
- 14. Postfix服务器镜像(备份服务器)
- 15. sql server 2012镜像设置多次备份后
- 16. 如何备份/恢复用于部署的Docker镜像?
- 17. 如何SQL备份或镜像数据库?
- 18. 实时“备份”或磁盘镜像。 Windows Server 2012
- 19. 在DB2中存储分割镜像备份
- 20. 备份git repo:归档镜像克隆... tar -Pzcf怎么办?
- 21. 简单的Cronjob备份一个目录
- 22. 如何备份Alfresco中的alf_data目录
- 23. 目录(备份)文件的Bash脚本
- 24. 备份家里有tar的目录
- 25. 备份目录+使用bash重命名
- 26. Java FileUtils复制备份目录
- 27. WHM备份脚本 - 压缩目录
- 28. RestKit和iCloud目录备份策略
- 29. 棱镜/ Mef目录目录SatisfyImports
- 30. 如何在每次时间戳不同时使用rsnapshot备份SVN存储库?
我发现有一个脚本调用rsnapshot拷贝,其旨在用于初始同步:[rsnapshot拷贝](http://cpansearch.perl.org/src/DCANTRELL/App-Rsnapshot-1.999_00002/utils的/ rsnapshot拷贝)。在这个文件的头文件中,它指出:'rsnapshot-copy当前不适用于增量镜像快照 root(尽管未来可能会增加增量模式)。“任何想法如何支持? – highsciguy
另一个想法是使用rsnapshot日志文件(可能首先相应地修改内部日志记录例程)来创建一个shell脚本,该脚本执行完全相同的mv和rsync操作,rsync在主备份上也对备份的镜像副本执行了操作。 – highsciguy
澄清一点,我看到一个正常的rsync问题(见下面的答案)。如果rsnapshot路径中的文件被破坏(例如由于磁盘故障),由于使用硬链接,它将在所有较新的快照中被破坏,除非在稍后改变。这意味着文件丢失了。如果我对备份的镜像副本执行常规自动rsync,那么最终我会用其损坏的版本覆盖文件而不会注意到。问题是如果有解决方案可以避免这种情况。 – highsciguy