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.tar
SSHの出力をローカルファイル名Remote.tarにリダイレクトします。
リモートホストでtarを使用できる場合、この方法は機能します。