tarを介してscp / sshファイル転送(プール)をパイプする方法(リモート - >ローカルコンピュータで開始されたローカル転送)

tarを介してscp / sshファイル転送(プール)をパイプする方法(リモート - >ローカルコンピュータで開始されたローカル転送)

tar(以下はtarの例なし)を介してscpプール操作を実行し、約10個のディレクトリが1つのtarファイルにのみ書き込まれるようにしたいと思います。

user@localhost:/home/user> scp -r remoteuser@remotehost:dir_to_transfer ./

リモートコンピュータにディレクトリがあり、各ディレクトリには転送する小さな(〜28k)ファイルが約10,000個あります。ファイルクォータのため、リモートホスト(remotehost)でtarコマンドを実行できる空き容量はありません。ファイアウォールルールのため、ローカルコンピュータ(localhost)でのみ転送を開始できます。

ファイル数が多いと転送時間が非常に長くなります。

データを「プッシュ」するときにこれを行う方法の例を見つけましたが、データを「プル」するときにこれを行う方法を知りたいです。

ローカルマシン情報:

  • オペレーティングシステム:OpenSuSe 13.2(x86_64)

  • バッシュ 4.2.53(1)

  • OpenSSH_6.6.1p1、OpenSSL 1.0.1k-fips 2015年1月8日

リモートマシン情報:

  • オペレーティングシステム:CentOSバージョン5.11(最終バージョン)
  • バッシュ 3.2.25(1)
  • OpenSSH_4.3p2、OpenSSL 0.9.8e-fips-rhel5 2008年7月1日

ベストアンサー1

から始めましょうuser@localhost

 > ssh -l remoteuser remotehost "tar cf - dir_to_transfert" > remote.tar

どこ

  • >お知らせです
  • ssh -l remoteuser remotehostリモートホストへの接続
  • "tar cf - dir_to_transfert"標準出力でリモートtarinを実行する
  • > remote.tarSSHの出力をローカルファイル名Remote.tarにリダイレクトします。

リモートホストでtarを使用できる場合、この方法は機能します。

おすすめ記事