我想使用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