略語:
scp
スイッチが使用する帯域幅を制限し、-l
キロビット/秒単位で数値を渡すことができます。
むしろ、特定の名前付きコンピュータに対して私のファイルに設定したいと思います.ssh/config
。
に対応する名前付き設定は何ですか-l
?私はそれを見つけることができませんでした。
フォローアップの質問:
通常、sshコマンドラインオプションと設定名の間を前後にマッピングする方法はわかりません。Google検索を実行したり、ケースごとにマニュアルページを手動で比較したりする機能が欠けています。この2つを直接同一視する表はありますか?
文脈を含む最初の質問の長い形式:
私はSSH設定の多くを使い始めました。特に、今はプロキシを介して多くのポートマッピングを実行する必要があるからです。必要なトンネルの種類に応じて、同じシステムを何度も定義しました。
ただし、大容量ファイルをアップロードすると、マイコンピュータでは他の操作を実行するのが困難です。アップリンク帯域幅よりもダウンロード帯域幅が多いにもかかわらず、これによりリンクが飽和し、scp
小さな要求もインターネットに到達できないようです。
-l
帯域幅コマンドラインスイッチを使用するソリューションがありますscp
。
scp -l 1000 bigfile.zip titan:
私の設定でこれを使用したいので、「titan-upload」という名前の追加アイテムを作成してアップロードするたびにそれをターゲットにします。
だから代わりに:
scp bigfile.zip titan:
私が言う:
scp bigfile.zip titan-upload:
または、自分の位置によって異なる制限を設定することもできます。
scp bigfile.zip titan-upload-from-work:
vs.
scp bigfile.zip titan-upload-from-home:
私は主にMacとLinuxを使用しています。
答え1
残念ながら、前述したように、帯域幅を制限する設定オプションがないようです。 (ソースコードを確認しました!)
考えられる解決策は、scpの別名を使用するか、関数を使用することです。 Bashは通常MacとLinuxのデフォルトシェルなので、次のように動作します。
alias scp='scp -l 1000 '
-or-
alias scp-throttle='scp -l 1000 '
(引用符内の末尾のスペースに注意してください!1)結果は次のとおりです。すべてscp コマンドは帯域幅を制限するために使用されます。あなたの状況を考えると、全体的に最高の解決策かもしれません。
「通常の」転送にはscpを使用し、遅い転送にはscp-throttleを使用できるため、2番目の方法が良い選択かもしれません。
またはもう少し脳能力が必要な機能:
function scp { if [ "$*" =~ "-upload" ]; then command scp -l 1000 "$@"; else command scp "$@"; fi; }
基本的に- アップロード'引数のどこでもbw制限を使用して転送を実行し、それ以外の場合は通常の転送が発生します。
これにより、複数の名前/エイリアスを使用して操作を表すことができます。
scp aaa titan:
- 正常にアップロード可能です。scp aaa titan-upload:
- お金が節約されます。scp titan:aaa .
- 通常scp titan-upload-from-home:aaa .
- スロットルscp a-file-to-upload titan:
- ああ、わざわざではなく制限をかけました!
編集する:
1 - エイリアス内の末尾のスペースを使用すると、エイリアスコマンドの後にエイリアスをさらに拡張できます。非常に役に立ちます/役に立ちます。Bash Man Page, __ALIASES__ section