在备份 Linux 主文件夹时,对 rsync dry-run 中的变化进行更有意义的回顾

在备份 Linux 主文件夹时,对 rsync dry-run 中的变化进行更有意义的回顾

我想使用rsync(我实际上正在使用Grsync)来备份我的主文件夹。我决定使用的最后一个命令是:

rsync -r -t -p -v --progress --delete -l -s --exclude-from [MY_FILE_WITH_EXCLUSIONS] --human-readable /home/myusername/ /mnt/Device/backupHome/

问题是,即使在运行同步之后,在使用 Grsync 运行空运行(-n)时仍会看到大量的文件和文件夹列表,如下所示:

sent 656.77K bytes  received 32.61K bytes  141.82K bytes/sec
total size is 2.2G  speedup is 5,665.39 (DRY RUN)

这对我来说没什么用。我希望它能展示一些更有意义的东西。

例如,我不想看到最新的文件/文件夹列表,我猜最好只看到将要发送给接收方的文件/文件夹列表以及它们的大小。然后,所有正在发送的文件/文件夹的总最终大小以及接收方正在删除的文件/文件夹的总最终大小对我来说也是非常有用的。

我有什么选择?Grsync 是否有其他选项可以解决这种情况?或者至少有什么好主意可以改善rsync试运行结果?

谢谢

答案1

我不想看到最新的文件/文件夹列表,我想最好只看到将要发送给接收方的文件/文件夹列表以及它们的大小。

会发生这种情况。在执行同步之前,将有完整的文件集需要传输,这就是--dry-run将显示的内容。成功运行同步后,源中将只有极少数文件发生更改,因此--dry-run将仅显示这些文件。

如果这不是您所发现的,那么您的目标文件系统可能无法保存您想要复制的时间和权限属性,因此rsync会发现文件不正确并且需要重新复制。

对于本机文件系统,我建议您保持简单并使用类似这样的方法

rsync -avhHP --delete -exclude-from MY_FILE_WITH_EXCLUSIONS "$HOME"/ /mnt/Device/backupHome/

对于非原生文件系统(如 NTFS),您将遇到元数据问题。例如,无论源上的权限如何,NTFS 文件系统上的文件和目录似乎rwx对每个人都具有完全权限(0777),并且每次使用时都会触发元数据的重新复制rsync。在这种情况下,您可能需要使用--fake-super或排除权限和所有权

mount -o acl,rw /dev/DEVICE /mnt/Device                                          # Include "acl"
rsync -aivHP -M--fake-super --delete SOURCE/ /mnt/Device/DESTINATION/            # Backup
rsync -aivHP --fake-super -M--super /mnt/Device/DESTINATION/ RESTORED_SOURCE/    # Recovery

相关内容