[netatalk-ja:0246] Re: Mac OS X serverからのrsyncでのデータコピーで不具合

HAT hat @ fa2.so-net.ne.jp
2013年 7月 27日 (土) 00:58:19 JST


HATです。

> 私の環境の10.5.8 Macからlinuxサーバへ-Eオプション付きでrsyncできないとい
> う件ですが、
> ご推察の通り、AFPを経由せずrsync+sshでコピーを試みた時に発生いたしました。
> 
> 
> /usr/bin/rsync -aE -8 "/usr/bin/ssh -i /var/root/.ssh/xxx_key" /hoge/ root @ CentOS6.4server:/Netatalkのボリューム
> 
> 
> ちなみにですが、CentOS6.4serverのNetatalkボリュームを10.5.8 Macからafp
> マウントすると「-E」が使える理由ですが、
> CentOSのNetatalkボリュームをafpでマウントするとrsyncが10.5.8 Macのものし
> か使わないから、という理解で正解なのでしょうか?

話が最初に戻りますが、
「netatalkを使うのなら、CentOSとMac間のコピーはnetatalkのみで行なってください。」
ということですよ。

AFPは外部の資源がローカルのHFS+と同じく見えるようにする為のプロトコルです。
OS XがAFPでボリュームをマウントすると、ご存知のとおりコマンドラインからは、
/Volumes/ボリューム名/
というパスに見えます。
Core Foundationのような高級なものがどうなっているかは別として、
Unixのような低級な仕組みの場合、それは単なるローカルのパスです。
OS X上のrsyncはUnix系のツールですから、、ローカルパスからローカルパスに
転送しているつもりになっています。本当はネットワーク上の別のシステムです
が、そんなことには気付いてないでしょう。
ローカルパスからローカルパスへの転送ならば、OS Xの独自ルールが適用できます。

OS Xのrsyncのmanpageを読むと、以下のようになっています。
-E, --extended-attributes   copy extended attributes, resource forks
OS X独自のresource forksに言及しているので、これは独自拡張に
間違いないでしょう。

ちなみに、CentOSのrsyncのmanpageでは、
-E, --executability         preserve executability
全く別の機能に割り当てられています。

もしかすると、CentOS上のrsyncデーモンの設定をいじれば、OS Xのrsync -Eから
送られてくるメタデータを受け取ることができるかもしれません。
設定をいじっても不可能ならば、CentOSのrsyncデーモンのソースを改造して、
OS Xのrsync -Eを受け取るようにできるかもしれません。
だとしても、まだ問題があります。受け取ったメタデータをどうやって保存するん
でしょうか。
NetatalkがMacのメタデータを保存する方法を完全に理解したうえで、それと同じ
フォーマットで保存してやる必要があります。

Netatalk3が保存するメタデータを直接読み書きできるソフトウェアは、
今のところNetatalk3だけです。
netatalkを使うのなら、CentOSとMac間のコピーはnetatalkのみで行なってください。

-- 
HAT


netatalk-ja メーリングリストの案内