web-dev-qa-db-ja.com

rsyncと--fake-super--属性を保持する方法は?

ファイルが復元されたときに所有者/グループおよびその他のメタデータが正しく復元されるように、バックアップを整理しようとしています。私のテストでは、Ubuntu 9.10サーバー(rsyncバージョン3.0.6、プロトコルバージョン30がインストールされている)からssh経由で、OSX10.6ラップトップまたはUbuntu9.10サーバーにバックアップしています。

バックアップの作成は、次のコマンド(rootとして実行)を使用して実行されました。

# rsync -avz --fake-super /var/www/myfolder [email protected]:/home/backups

これを行ってもエラーは報告されません。

次に、以下を使用してテストディレクトリを取得します。

# rsync -avz --fake-super [email protected]:/home/backups/myfolder /tmp

そして、すべてのファイルについて、エラーを報告します。

rsync: failed to write xattr user.rsync.%stat for "/tmp/myfolder/path/to/file": Operation not supported (95)

もともとこれはOSXにバックアップしていたためだと思っていたので、Ubuntuサーバーに再度バックアップしてみましたが、ファイルの復元時に同じエラーが発生しました。 Googleで検索してrsyncのマンページを調べましたが、何の助けも見つかりませんでした。

私のローカルUbuntuサーバーはext3、リモートUbuntuサーバーext4を使用しており、MacにはHFSがあります

3
PeterB

あなたは少なくとも1つの間違ったことをしています。

まず、接続の反対側で--fake-superを使用しています。 rsyncのmanページを引用させてください。

--fake-superオプションは、オプションが使用されている側にのみ影響します。リモートシェル接続のリモート側に影響を与えるには、rsyncパスを指定します。

rsync -av --rsync-path = "rsync --fake-super"/src /ホスト:/ dest /

あなたがしていることは、とにかくすでにルートしている接続の側で--fake-superを実行することです。

「xattruser.rsync。%statの書き込みに失敗しました」に関する部分は、-fake-superで使用されるファイルシステムがフラグuser_xattrでマウントされていないためです。このマウントオプションは、-fake-superを使用している接続側で有効にする必要があります。これは、原因として「remoteserver.com」になります。

要約すると、これらは実行する必要のあるコマンドです。

# rsync -avz --rsync-path="rsync --fake-super" /var/www/myfolder [email protected]:/home/backups
# rsync -avz --rsync-path="rsync --fake-super" [email protected]:/home/backups/myfolder /tmp

... remoteserver.comで有効なマウントオプションuser_xattrを使用

13
andol