ネットワーク経由でアーカイブを抽出する方法

ネットワーク経由でアーカイブを抽出する方法

2 台の Solaris サーバーがあります。 server1にファイルがありますarchive.tar.gz。ファイルを抽出するには、server2でsshする必要があります。

だから、次のコマンドを作成します。

ssh server2 < archive.tar.gz | gunzip -c | tar -xf - -C /home/

しかし、エラーが発生します。

stdin が端末ではないため、疑似端末は割り当てられません。

ファイルを正しくコピーする方法は?

ベストアンサー1

私はあなたが次のことをすることができると信じています:

$ cat archive.tar.gz | ssh server2 "tar zxvf -"

server2から抽出されるディレクトリを制御する必要がある場合:

$ cat archive.tar.gz | ssh server2 "cd /path/to/dir; tar zxvf -"

ソラリス

お客様は Solaris を使用しているため、tar バージョンには GNU tar が提供する圧縮機能が含まれていない場合があります。心配しないでください。このコマンドは引き続き実行できます。archive.tar.gzまず、タールボールを解凍できるコマンドでcatを分解するだけです。

次のようにする必要があります。

$ cat archive.tar.gz | ssh server2 "(cd /some/dir; gunzip | tar xf -)"

またはこれ:

$ gzip -dc < sample.tar.gz | ssh server2 "cd /path/to/dir; tar xvf -"

またはこれ:

$ gunzip sample.tar.gz | ssh server2 " cd /path/to/dir; tar xvf -"

おすすめ記事