rsyncを使用して、UbuntuサーバーをMac上のディスクにバックアップします。しかし、初回以降にrsync操作を再実行するたびに、特殊文字を含むファイルが最初に削除されてから再同期されるため、適切に動作しません。異なる文字セットに問題があるかのようです。
好ましい解決策を使用するように思わ--iconv
オプションを:
少なくともMacを使用している場合は、rsyncの--iconvオプションを使用してUTF-8 NFCとNFDの間で変換できます。UTF-8 NFDを表す特別なutf-8-mac文字セットがあります。したがって、MacからNASにファイルをコピーするには、次のようなものを実行する必要があります。
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
これにより、すべてのローカルファイル名がリモートサーバー上のUTF-8 NFDからUTF-8 NFCに変換されます。ファイルの内容は影響を受けません。
@Janのおかげで、Macのrsyncバージョンを 2.6.9から更新しました。3.1.1へ。それでも、エラーがさらに表示されるので、まだそこにはいません。
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.xx以降であり、この--iconv
オプションをサポートする必要があるため、「リクエストされたアクションがサポートされない」理由を理解できません。
編集:私は(Macでは、nota beneで)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バージョンのみを「見る」ように見えます。
これを解決する方法についての提案はありますか?