ファイルの所有権を維持しながら、サーバーからローカルホームフォルダにrsync

ファイルの所有権を維持しながら、サーバーからローカルホームフォルダにrsync

ファイルの所有権を維持しながら、ウェブサイトを私のホームフォルダにバックアップしました。

rsync -az  [email protected]:/www/site ~/backup

私が理解するなら、-aオプションは-rlptgoDと同じです。ここで、-oと-gは所有者とグループを保持します。正しいですか?

バックアップするファイルはすべてadmin(共有ホスティング)ではなくuser:userに設定されています。

コマンドを実行すると、ローカルコンピュータのすべてのファイルが自分のローカルユーザー:グループになるように変更されます。

基本的な質問は、ファイルの元の所有権を維持する方法です。それとも私が間違った方法で近づいているのでしょうか?そして、ファイルの重量を測定して転送する必要がありますか?

答え1

すでにファイルを所有している場合、またはルートでない場合は、ファイルの所有権とグループを維持することはできません。 (これはファイルが「リーク」できないという原則と一致します。)この--fake-superフラグを使用すると、拡張属性に所有権とグループを書き込むことができるため、十分な権限で復元する場合は、以前に保存した値を復元できます。

# Backup
rsync -az --fake-super [email protected]:/www/site ~/backup

# Restore
rsync -az --fake-super ~/backup [email protected]:/www/site

リモートシステムにrootとしてログインできないがsudoパスワードを入力せずに実行できる場合は、コマンドラインを次のように変更できます。

# Restore via sudo
rsync -az --fake-super --rsync-path='sudo rsync' ~/backup [email protected]:/www/site

この--fake-superフラグは、ターゲットシステムに存在しないユーザーとグループ名に関する問題も回避します(--numeric-ids使用しないことを決定した場合のオプションです--fake-super)。実際にバックグラウンドで実行されていることに気づくまで、ターゲットシステムでは少し奇妙に見えます。たとえば、バックアップされると、シンボリックリンクはシンボリックリンクではなくなります。

1つの潜在的な問題は、rsyncUID / GIDの代わりに名前で所有者とグループの情報をコピーすることを好むことです。ターゲットシステムにこれらの名前がないと、問題が発生する可能性があります。幸い、この--numeric-idsフラグを使用すると、rsync名前ではなくUID / GIDにコピーできます。

関連情報