TarコマンドとPIPE

TarコマンドとPIPE

私が欲しいとしましょう:

サーバーAのディレクトリからtarballを作成する

このタールボールをサーバーBにコピーします。

サーバーBで解凍

ssh root@serverB   " scp  root@serverA:/var/www/dirs.tar.gz  /var/www/dirs.tar.gz && tar -xvf  /var/www/dirs.tar.gz 

パイプを使用してパスが重複するのを避けたい。 2番目のパラメータを取得するには、PIPEを使用して正しく作成するにはどうすればよいですか?

ありがとう

答え1

ディレクトリを圧縮してリモートサーバーにコピーしてからそこから解凍しますか?まあscp -r directory ...rsync -r directory ...それともsftpはるかに優れています。

tarファイルをリモートサーバーにコピーして抽出するには、次のようにします。

tar -cf - mydir | ssh [email protected] 'bash -c "tee archive.tar | tar -xf -"'

ここで重要なのは、teetarファイルのコピーをリモートファイルシステムに配置し、tarファイルをtarコマンドに渡して解凍することです。

おそらくあまり複雑ではない解決策は、rsynctarファイルを生成できるリモートサーバーにディレクトリを転送することです。

答え2

タールボールをどのように生成するのかわからず、別の手順が必要ですが、tarファイルを作成/使用する必要がない場合は、次のようにします。

ssh serverA tar cz file… | tar xz

(これを助けるために、あなたがすでにroot@serverBであると仮定し、正しいディレクトリにいることを確認するなどのことは省略しています。)

関連情報