scpなら-lオプションで帯域制限出来るので、絶対sshでもあるはず!
と思って、manやらnetやら調べたけど無さそう。
なんでそんな必要があるかと言うと、自分の場合、リモートの運用中のサーバにsshでログインして、tarでまるごとシステムのコピーを取得するなんてことが多々ある。
その場合、実運用中のサーバからデータを取るので、なるべく運用中のサーバやネットワークに負荷を掛けずに持ってきたい。
で調べた結果pvっていうコマンドを使えば良さそう。
debian/ubuntuならapt-getで一発インストールだと思う。Red HatやCentだと標準レポジトリには無いと思う。
| 1 | $ sudo apt-get install pv | 
別にsshに限った話ではなく、標準入出力の帯域制限を行ってくれて、しかもプログレスバーで進捗とかも見せてくれる。
帯域制限は-Lオプションで指定できる。kとかmとかgとか
pvの引数にファイルを渡してやると
| 1 2 | $ pv -L 3m 1G.bin  > hoge 14MB 0:00:38 [2.87MB/s] [========>                                                                             ] 11% ETA 0:05:03 | 
パーセンテージまで出してくれる。たぶん元ファイルのサイズが分かるから。
パイプで挟まれると
| 1 2 | $ cat 1G.bin |pv -L 3m > hoge 9MB 0:00:03 [   3MB/s] [     <=> | 
元ファイルのサイズがわからないので、パーセンテージは出せないが帯域制限はかかっている。
sshで使う時も、パイプであれば何ら変わらない。
| 1 | $ ssh foo@example.com 'cat ~/big-data.bin' | pv -L 3m > big-data.bin | 
うーん。sshだけじゃなくて何かと便利っぽい。