[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 メーリングリストの案内