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

Kyo sixty7kyo_19 @ rock.odn.ne.jp
2013年 7月 27日 (土) 00:56:42 JST


湯浅です。
こんばんわ。

(多少、不正確部分あると思います。イメージ的に理解していただける良いのですが。。)

> /usr/bin/rsync -aE -8 "/usr/bin/ssh -i /var/root/.ssh/xxx_key" /hoge/
> root @ CentOS6.4server:/Netatalkのボリューム

この場合は、rsyncプロトコルだけで経由して、バックアップします。

OSX Server → (rsyncプロトコル)→ CentOS

この場合-Eをつけても、rsyncプロトコルがResourceForkなどを理解できません。
(※というか10.4〜10.5までのrsyncは、osxのrsyncがResourceForkを分けて送ってると
思います。10.3くらいのrsyncはResourceForkをコピーできません。相手側のrsyncは分けて受信した
ResourceForkを保存する術がありません。)

ResourceForkやOSX固有のメタ情報を含めて、CentOSにバックアップするためには
Netatalkボリュームを介すしかありません。

OSX Server → (rsyncコマンド)→  (Netatalk)CentOS
こうするとNetatalkボリュームはResourceForkを保存できるので、
分けて送ったものを保存します。(バックアップ先がsmbなら、._で始まるファイルで保存します。)
(※vオプションをつけて、rsyncの状況を見ると10.4では、ResourceForkとDataForkを分けて送って
いました。その際の表示は._で始まるファイルです。差分をとると、ResourceForkは必ず全部送信されて
差分にならなかったと記憶しています。10.4も初期のrsyncにはバグがあったり、最終的な実装はわかりませんが。。
10.8はResourceForkをどう処理してますかね?あとでやって見ます。)


> ちなみにですが、CentOS6.4serverのNetatalkボリュームを10.5.8 Macからafpマウントすると「-E」が使える理由ですが、
> CentOSのNetatalkボリュームをafpでマウントするとrsyncが10.5.8 Macのものしか使わないから、という理解で正解なのでしょうか?
> お分かりになるようでしたらアドバイスいただけますと幸いです。

ということで、上記理解で正解だと思います。

ちなみに-EはMacOSのrsync固有のオプションです。
-E, --extended-attributes(10.8のmanで確認しました。)
              Apple specific option  to  copy  extended  attributes,  resource
              forks,  and  ACLs.   Requires at least Mac OS X 10.4 or suitably
              patched rsync.

CentOSでuser_attrとaclをバックアップする場合は
-AXです。(Fedora17で確認)
-A, --acls                  preserve ACLs (implies -p)
-X, --xattrs                preserve extended attributes


これ紛らわしくて、OSXとCentOS行き来すると、いつもどっちだかわからなくなります。。


Kyo
sixty7kyo_19 @ rock.odn.ne.jp



On 2013/07/26, at 14:51, Taiki Kimura <taikimura8182 @ gmail.com> wrote:

> HATさん
> 
> 
>>> 私の環境の10.5.8のMacからlinuxサーバへ-Eオプション付きでrsyncできないですね。
>>> rsync: on remote machine: --extended-attributes: unknown option
>>> 
>>> こういうエラーメッセージがでてrsync失敗します。
>> 
>> これは、AFPを経由せず、rsyncの独自プロトコルで転送を試みたということですか。
>> だとすると、検証する意味がありません。やるだけ無駄です。
>> もしコピーに成功したとしても、メタデータの扱い方が異なるので、
>> netatalkで運用できません。
> 
> 
> 私の環境の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-ja メーリングリストの案内