使用 rsync 备份到 msdos 类型的外部 USB 驱动器?

使用 rsync 备份到 msdos 类型的外部 USB 驱动器?

我正在尝试使用 rsync(在 Linux Mint 上)备份到 msdos 类型的外部 USB 驱动器(如驱动器属性中所示),使用以下命令:

rsync -av ~/Documents/rsynctest/ /media/myname/PC/rsynctest --delete

但是,它正在复制一些自我上次运行此命令以来尚未更改的文件。这是怎么回事?是否有直接的解决方案,而无需重新格式化驱动器?

添加“i”标志会导致以下行的输出:

.f...p..... CBCTest/bin/Debug/CBCTest

答案1

您需要使用以下方法解决 rsync 问题:

--仅尺寸

但如果文件大小完全相同但不同,则可能无法升级。

祝你好运!

答案2

Vfat 文件系统(我猜“type msdos”的意思)不支持文件的用户/组/权限,因此 vfat 文件系统上的每个文件都会显示一些参数的合成值(在安装时设置)。如果这些值与您尝试同步的文件的值不同,rsync(用-o/ -g/调用-p- 全部包含在 的含义中-a)将认为某些内容已更改并重新复制文件。

答案3

在你的输出中

.f...p..... CBCTest/bin/Debug/CBCTest

“p”表示它正在更新目标文件的 (p) 权限,因为它认为它们需要这样做。

(它实际上并不是复制文件,因为它已经就位,只是更新权限)。

某些文件系统可能根本无法匹配“正确”的权限。例如,如果您尝试 rsync 到 FAT 文件系统,该系统不会以相同的方式存储权限。在这种情况下,您可能只想关闭权限保留。要么不提供-p/--perms,或者如果它们通过类似的方式包含在内-a,请--no-perms稍后再提供。

或者,也许权限真的被改变了。你必须亲自调查一下。

相关内容