我想使用rsync来备份我的Ubuntu服务器,使用的磁盘位于Mac上。但是我无法使其正常工作,因为每次在初始时间之后重新运行rsync操作时,具有特殊字符的文件首先被删除,然后重新同步。似乎存在不同字符集的问题。
首选解决方案似乎是使用
引用: 您可以使用rsync的--iconv选项在UTF-8 NFC和NFD之间进行转换,至少在Mac上是这样。有一个特殊的utf-8-mac字符集代表UTF-8 NFD。因此,要将文件从Mac复制到NAS,您需要运行类似以下命令:
感谢 @Jan,我从2.6.9版本升级到了3.1.1版本的rsync。然而,我还没有完全解决问题,因为现在我遇到了另一个错误:
我无法理解为什么会出现“请求的操作不受支持”的问题,因为我的Ubuntu(12.04)上的rsync版本似乎是3.x.x之后的版本,所以应该支持
编辑:让我补充一下,当我(在Mac上)从Mac向Linux发起rsync时,一切都运行得很顺利。
但是从Mac电脑这边过去却行不通。奇怪的是,尝试从Linux机器启动rsync时出现了这个奇怪的消息:
包括非常奇怪的声明
有什么建议可以解决这个问题吗?
--iconv
选项:引用: 您可以使用rsync的--iconv选项在UTF-8 NFC和NFD之间进行转换,至少在Mac上是这样。有一个特殊的utf-8-mac字符集代表UTF-8 NFD。因此,要将文件从Mac复制到NAS,您需要运行类似以下命令:
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
这将把所有本地文件名从UTF-8 NFD转换为远程服务器上的UTF-8 NFC。文件内容不会受到影响。感谢 @Jan,我从2.6.9版本升级到了3.1.1版本的rsync。然而,我还没有完全解决问题,因为现在我遇到了另一个错误:
iconv_open("UTF-8", "utf-8-mac") failed
rsync error: requested action not supported (code 4) at rsync.c(118) [sender=3.0.9]
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.1]
我无法理解为什么会出现“请求的操作不受支持”的问题,因为我的Ubuntu(12.04)上的rsync版本似乎是3.x.x之后的版本,所以应该支持
--iconv
选项。编辑:让我补充一下,当我(在Mac上)从Mac向Linux发起rsync时,一切都运行得很顺利。
rsync -av --delete --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
但是从Mac电脑这边过去却行不通。奇怪的是,尝试从Linux机器启动rsync时出现了这个奇怪的消息:
rsync: on remote machine: --iconv=UTF-8-MAC: unknown option
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-45/rsync/main.c(1333) [server=2.6.9]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
包括非常奇怪的声明
[server=2.6.9]
,尽管我在Mac上已经更新到3.1.1版本。由于某些原因,我的Linux机器似乎只能“看到”Mac上的原始rsync版本。有什么建议可以解决这个问题吗?