我喜欢将基于 Linux 的 NAS(图片等小文件)备份到附加的 FAT32 USB 磁盘。为此,我喜欢使用 rsync。
我知道,默认情况下这不会正确工作。 rsync 将一次又一次同步文件。 我找到了这个问题和答案:如何在 FAT 文件系统中使用 rsync?
但是,即使我使用--modify-window=1
and--size-only
选项,所有文件都会被重新处理。日志看起来像是,rsync 尝试在 fat32 上设置权限/所有权,这将失败。
rsync: chown "<filename>" failed: Operation not permitted (1)
问题是:有没有办法禁用“chown”命令?
//编辑:
目前我使用以下命令:rsync -a --modify-window=1 --size-only /data/ /mnt/backup/. &
答案1
只是不要使用同步所有者/组的选项。如果您使用--archive
/-a
选项,则包括这两个选项,因此请单独指定标志并省略它们。查看手册页以获取--archive
暗示的列表。
答案2
我一直在尝试弄清楚如何防止 rsync 每次都复制每个文件,但一直没有成功。但我刚刚偶然发现了答案。这是一个 FAT32 短文件名问题;显然,默认情况下,Linux 会将它们全部转换为小写,这会使 rsync 无法识别源和目标上的同一个文件。
解决方案是使用“shortname=mixed”选项挂载 FAT32 设备。我相信您还需要使用 utf8 字符集,例如“iocharset=utf8”。然后使用以下参数运行 rsync:-rtv --modify-window=1
在安装了 Trinity 的 Debian 上,我可以右键单击桌面上的 FAT32 分区图标,选择“属性/挂载”,将“短名称”设置为“混合”,并确保选中“UTF-8 字符集”。希望有办法将这些设为所有 FAT32 分区的默认设置,但我还没有找到。