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