Scpプル操作(以下のtarなしのサンプル)をtarにパイプして、約10個のディレクトリに対して1つのtarファイルのみが書き込まれるようにします。
user@localhost:/home/user> scp -r remoteuser@remotehost:dir_to_transfer ./
リモートマシンに、転送するディレクトリごとに約10,000個の小さな(〜28k)ファイルがあるディレクトリがあります。ファイルの割り当てが原因で、リモートホスト(remotehost)でtarコマンドを実行するための空き領域があまりありません。ファイアウォールのルールにより、ローカルマシン(localhost)からのみ転送を開始できます。
ファイルの数が非常に多いため、転送が非常に長くなります。
データを「プッシュ」するときにこれを行う方法の例を見つけましたが、データを「プル」するときにこれを行う方法を知りたいです。
ローカルマシン情報:
OS:OpenSuSe 13.2(x86_64)
bash 4.2.53(1)
OpenSSH_6.6.1p1、OpenSSL 1.0.1k-fips 2015年1月8日
リモートマシン情報:
user@localhost
からお試しください
> ssh -l remoteuser remotehost "tar cf - dir_to_transfert" > remote.tar
どこ
>
はプロンプトですssh -l remoteuser remotehost
リモートホストに接続します"tar cf - dir_to_transfert"
標準出力へのリモートタリンを実行します> remote.tar
sshの出力をlocalfile名remote.tarにリダイレクトしますこれは、リモートホストでtarが許可されている場合に機能します。