私は答えを探していましたが、何もうまくいきませんでした。
別のサーバーのCDにあるtarファイルがあり、サーバーに転送して、中間保存せずにすべて同時に解凍する必要があります。タールには複数のファイルがあり、それらは不明である可能性があります。
自分のサーバーまたは他のサーバーからこれを行うにはどうすればよいですか?
私はこれをscpで調べ、tarとsshを使用して、rsyncで理解しようとしました。
どんな助けでも大歓迎です
ターゲットシステム(ファイルが抽出される場所):
cd /target/dir && ssh user@source_server "cat /path/to/your/file.tar" | tar -xvv
[〜#〜]または[〜#〜]
ソースサーバー(tarファイルが配置されている場所)から:
ssh user@target_system "cd /target/dir && tar -xvv" < /path/to/your/file.tar
以下に、(ターゲットシステム上で)遊ぶためのいくつかの選択肢があります。
scp
およびbashプロセス置換(利用可能な場合):
scp user@source_server:/path/to/your/file.tar >(cd /target/dir && tar -x)
scp
および/proc/self
(可能な場合は):
cd /target/dir && scp user@source_server:/path/to/your/file.tar /proc/self/fd/1 | tar -x
これは、ファイルがTARアーカイブであることを前提としています。 TARアーカイブが圧縮されているとは想定していません。ソースファイルが実際に標準のTARアーカイブ以外のものである場合、コマンド/オプションは異なる場合があります。
ソースシステムにtarファイルがある場合は、次のことを試してください。
cd /source/dir
cat somefile.tar | ssh user@target_Host "cd /target/dir; tar xvf -"
tar
コマンドの正しいオプションに注意してください。 x
はtarを抽出し、v
は詳細(オプション)、f
はファイルを指定します(テープデバイスではありません)。 tarコマンドの入力としてSTDINをtarするため、最後に-
が必要です。 tarコマンドは、SSHコマンドの引用符内で実行する必要があるため、tarはローカルホストではなくターゲットホストで実行されます。
ターゲットサーバーから、構文を少し変更します。
cd /target/dir
ssh user@source_Host "cat /source/dir/somefile.tar" | tar xvf -