我使用 rsync
将 NAS 上的文件备份到 USB 设备。我使用以下命令:
sudo rsync -rv --modify-window=9999 --update --delete --stats --progress --log-file=/shares/Franck/log/backup_photos.log /shares/Public/photos /USB_DRIVE/photos
只要 USB 驱动器保持连接到 NAS,一切工作正常。也就是说,rsync 复制新的和更改的文件,仅此而已。
但是,我有时会使用备份 USB 驱动器来做其他事情,并将其插入其他 Windows 和 Mac 机器(但我不会触摸驱动器上的/photo 文件夹),并且当我再次将其挂载到 NAS 上时并启动备份,rsync
再次复制每个文件(即使它没有更改)。
你知道如何解决这个问题吗?谢谢。
驱动器被格式化为 FAT32 格式,并且无法更改(我与 Linux、Windows 和 Mac 交互)。我知道这对于 rsync 来说不是最佳选择,但我必须处理它(我不关心保留权限信息等)。
最佳答案
我长期以来一直试图找出这个问题的答案,但没有成功。但我刚刚偶然发现了答案。这是 FAT32 短文件名问题;显然,默认情况下,Linux 将它们全部转换为小写,这会扰乱 rsync 识别源和目标上相同文件的能力。
解决方案是使用“shortname=mixed”选项挂载 FAT32 设备。我相信您还需要使用 utf8 字符集,例如'iocharset=utf8'。然后使用参数运行 rsync:-rtv --modify-window=1
在带有 Trinity 的 Debian 上,我可以右键单击桌面上的 FAT32 分区图标,“属性/挂载”,将“短名称”设置为“混合”,并确保选中“UTF-8 字符集”。希望有一种方法可以使这些成为所有 FAT32 分区的默认值,但我还没有找到。
关于linux - Rsync 复制未更改的文件(USB 驱动器、FAT32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28398905/