使用 Rsync 备份 Linux 并将备份目录发送到 Zip

使用 Rsync 备份 Linux 并将备份目录发送到 Zip

两部分问题

第一部分: 我想使用以下 rsync 命令来备份/Ubuntu Live 会话期间开始的 Ubuntu 18.04 文件系统(即我的文件系统),但我不确定是否所有必要/建议的排除项,并且我不确定是否我的语法是否正确:

sudo rsync -aAXHv --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/home/*","/swapfile"} /from/live/session/to/my/file/system/ /path/to/my/external/storage/file-system-18.04/ 

我计划重新使用此命令定期将我的文件系统备份到相同的外部硬盘位置,因此我包括--delete

具体来说,在 /root/ 目录下我有 .cache、.config、.dbus、.gnupg、.gvfs、.local、.mozilla

我知道 gvfs、mozilla、dbus 和 gnupg 必须被排除(如果我错了,请告诉我),但是排除的内容会是什么样子呢? (我也想排除 local/share/Trash 文件夹)

sudo rsync -aAXHv --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/home/*","/swapfile","/root/*/gvfs/","/root/*mozilla/","/root/*/dbus/","/root/*/gnupg/","/root/*/local/share/Trash"} /from/live/session/to/my/file/system/ /path/to/my/external/storage/file-system-18.04/ 

上面的语法对吗?我缺少什么?

第二部分: 备份文件系统后,我想自动将其保存到 zip 存档中,以便刻录到磁盘、上传等(好的备份系统是多余偏执的)我想使用以下命令:

sudo zip -p 密码 -ry "/path/to/my/external/storage/post-rsync-zips/file-system-18.04-backup.$(date +"%F").zip" /path/to/my/external/storage/file-system-18.04

在测试过程中,我启动了一条zip warning: name not matched消息,这是我所期望的,因为实际的存档尚未在 处创建/path/to/my/external/storage/post-rsync-zips/

然而,这里是奇球问题: 压缩过程实际上因以下错误而退出:

zip I/O error: No space left on device
zip error: Output file write failure (write error on zip file)

我使用的是 2TB 外部文件系统 18.04 文件夹为 230GB,另一个以前备份的文件夹为 430GB,留下 1280GB 的可用空间供我的 zip 目录使用......那么为什么我会收到错误?

答案1

冒着给出有点偏离主题/替代答案的风险:帮自己一个忙,使用类似的工具borgbackup来达到此目的。它似乎符合你所有的要求,并且将会

  • 更容易使用
  • 更容易维护(包括备份集的包含/排除)
  • 节省更多空间(包括重复数据删除和压缩)
  • 为您带来以下额外好处:
    • 加密
    • 多余的历史(à la时光机器

我不隶属,borgbackup但是是一个快乐的用户。更多信息这里

编辑:应要求仍然“更直接”地回答问题,这里有一些想法:

exclude按照说明使用该标志在手册页中,即使用模式作为参数,例如--exclude='*.log',您可以针对不同的模式多次使用它。请小心重叠的包含/排除,它们可能会产生与预期不同的结果(我以前遇到过此问题)。如果您的模式很多和/或复杂,请将它们放入文本文件中并参考--exclude-from=excludes.txt

对于压缩部分:我不确定zip问题的原因(需要更多信息),它可能与后台制作的中间文件有关,或者与例如“过时”文件系统有关2GB 文件大小限制。

然而,对于Linux,您可能会更好地使用现代压缩,它是开箱即用的tar,例如xzbz2(相比之下,前者相当有效),也因为您可以在生成过程中将其通过管道传输到某个地方,因此可以保证没有中间文件。

但同样,如果不使用更专业的工具,您就会错过非常有吸引力的功能,特别是因为您在 rsync 之后进行压缩,这使得压缩档案的增量备份变得不可能。我认为 KISS 很好,但 KISS 更好(第二个 S=智能),并且有无处不在的开源工具:比“仅仅”rsync 更智能。

欢呼吧,企鹅

相关内容