增量备份

增量备份

如何编写使用 rsync 创建增量备份的脚本,或者执行增量备份的参数是什么?

场景如下:

我有一个 samba 文件服务器,我需要将特定 samba 文件夹上的任何更改或创建的附加文件备份到 USB 外部驱动器。我需要备份的文件的位置(/opt/Resources 和 /opt/Resources 共享文件夹 2)和目标(/media/disk/Resources 文件备份)。

我尝试在 /opt/Resources 上创建一个文件 (zipfiletest),然后手动运行 rsync 来查看该文件是否传输到了 USB 外部硬盘驱动器,它似乎有效,但是我不知道如果从 samba 源创建或修改了新文件,如何自动执行此操作。

[root@fileserver Resources]# rsync -azv /opt/Resources/zipfiletest /media/disk/Resources\ Files\ Backup01292013/Resources
sending incremental file list
zipfiletest/

sent 47 bytes  received 16 bytes  126.00 bytes/sec
total size is 0  speedup is 0.00

答案1

rsync 可以创建指向另一个目录中文件的硬链接。因此,当您备份到名称中包含当前日期的目录时,您可以传递指向上一次备份的 --link-dest 参数。结果,您将有两个相同的目录(如果备份之间没有变化),它们只占用一个目录的空间。

另一个解决方案是 rdiff-backup。它使用 rsync 协议并为您处理增量。它使用一些额外的文件来存储与旧版本的差异(无硬链接)。我用过它,效果很好,但在恢复旧版本时,速度很慢。

答案2

以下是我解决自己的问题的方法。

从 Samba 文件服务器:

来源:

/opt/Resources
/opt/Resources Shared Folder 2

目的地:

/media/disk/Resources Files Backup/Resources
/media/disk/Resources Files Backup/Resources Shared Folder 2

脚本:

备份文件

rsync -azv /opt/{Resources,Resources\ Shared\ Folder\ 2/} /media/disk/Resources\ Files\ Backup/Resources/

备份脚本的位置:

/usr/local/bin

crontab 每天午夜运行

0 0 * * * /usr/local/bin/backup.sh

答案3

http://rdiff-backup.nongnu.org/

所有文件的远程增量备份可以像“rdiff-backup / host.net::/target-dir”一样简单“[免责声明]它是什么?

rdiff-backup 可以将一个目录备份到另一个目录,可能通过网络。目标目录最终会成为源目录的副本,但额外的反向差异会存储在该目标目录的一个特殊子目录中,因此您仍然可以恢复一段时间前丢失的文件。其理念是结合镜像和增量备份的最佳功能。rdiff-backup 还保留子目录、硬链接、dev 文件、权限、uid/gid 所有权、修改时间、扩展属性、acls 和资源分支。此外,rdiff-backup 可以通过管道(如 rsync)以带宽高效的方式运行。因此,您可以使用 rdiff-backup 和 ssh 将硬盘安全地备份到远程位置,并且只会传输差异。最后,rdiff-backup 易于使用,设置具有合理的默认值。

相关内容