linux - Rsync 复制未更改的文件(USB 驱动器、FAT32)

标签 linux rsync usb-drive fat32

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

相关文章:

linux - 使用 linux 脚本将第 6 个反斜杠后的所有内容向上移动一行

linux - Bluez 自动重新连接设备

linux - Haproxy 绑定(bind)错误

file - 通过ssh rsync删除现有文件

android - 将 dvd 驱动器连接到 android 设备

检查某个 USB 闪存是否连接到我的系统

python - Debian Jessie 前沿安装,同时保留系统包

clearcase - rsync 本地代码与远程clearcase动态 View

linux - 从 cron 调用时脚本不起作用

c# - 使用 C# Windows 10 物联网核心将文件复制到 USB