所有権を維持しながら、あるシステムから別のシステムに大きなツリーをコピーします。

所有権を維持しながら、あるシステムから別のシステムに大きなツリーをコピーします。

コンピュータ間で大きなフォルダ構造をコピーしようとしています。実際、その後に権限を「修正」することは不合理であるため、コピー中に所有権/権利を維持したいと思います。

そのため、次のコマンドを使用してprivsファイル全体をtarし、データをターゲットコンピュータに転送しました。両方のシステムに同じユーザーが存在します。

tar cfzp - foldertocopy | ssh me@machine "cat > /applications/incoming/foldertocopy.tar.gz"

転送が正常に動作します。次のステップは、リモートシステムでroot権限を使用してファイルを抽出することです。

問題は次のとおりです。圧縮データと圧縮されていないデータの両方を格納するディスク容量が不足しています。

rsync / recursive scpを使用できますが、ユーザーに正しい権限でファイル自体を作成する権限がなく、ルートがリモートでログインできません。

私のオプションは何ですか?ソースコンピュータはRHEL4、ターゲットコンピュータはRHEL5です。

答え1

名前付きパイプをルートに設定します。

# mkfifo /tmp/fifo
# chmod o+w /tmp/fifo

次に、データを次のように転送しますme

$ tar cfzp - foldertocopy | ssh me@machine "cat > /tmp/fifo"

しかし、次のように読んでくださいroot

# tar -xfzp /tmp/fifo

答え2

この問題を解決する1つの方法は、sshにuntarを直接実行させることです。

tar cfzp - foldertocopy | ssh me@machine "cd rightplace; tar xzf -"

答え3

アーカイブrsyncを使用しないのはなぜですか?

rsync -avzHAX foldertocopy user@remoteserver:/file/path/to/copy

これにより、ファイルに関するすべての詳細を保存でき、「z」rsyncを使用してすぐにストリームを圧縮できます。

関連情報