Äquivalent zu scp -l bandwidth_cap für .ssh/config?

Äquivalent zu scp -l bandwidth_cap für .ssh/config?

Kurzform:

Sie können die scpgenutzte Bandbreite mit dem -lSwitch begrenzen, indem Sie eine Zahl in kbit/s übergeben.

Ich würde dies lieber in meiner .ssh/configDatei für Maschinen mit bestimmten Namen festlegen.

Was ist die entsprechende benannte Einstellung für -l? Ich konnte sie nicht finden.

Zusatzfrage:

Generell bin ich mir nicht sicher, wie ich zwischen SSH-Befehlszeilenoptionen und Konfigurationsnamen hin- und herwechseln kann, ohne Google-Suchen durchzuführen oder Manpages von Fall zu Fall manuell zu vergleichen. Gibt es eine Tabelle, die die beiden direkt vergleicht?

Längere Form der ersten Frage mit Kontext:

Ich habe angefangen, die SSH-Konfiguration ziemlich häufig zu verwenden, insbesondere jetzt, da ich über einen Proxy gehen und viele Portzuordnungen vornehmen muss. Ich definiere sogar dieselbe Maschine mehr als einmal, je nachdem, welche Art von Tunnel ich benötige.

Beim Hochladen einer großen Datei ist es jedoch schwierig, auf meinem Computer irgendetwas anderes zu tun. Obwohl ich mehr Download- als Upload-Bandbreite habe, glaube ich, dass scpdie Verbindung dadurch überlastet ist, sodass selbst meine kleinen Anfragen das Internet nicht erreichen können.

Hierfür gibt es eine Lösung: Verwenden Sie den -lBandbreiten-Befehlszeilenschalter für scp.

scp -l 1000 bigfile.zip titan:

Ich möchte dies stattdessen in meiner Konfiguration verwenden, also erstelle ich einen zusätzlichen benannten Eintrag mit dem Namen „titan-upload“ und verwende diesen bei jedem Hochladen als Ziel.

Also statt:

scp bigfile.zip titan:

Ich würde sagen:

scp bigfile.zip titan-upload:

Oder sogar unterschiedliche Obergrenzen festlegen, je nachdem, wo ich mich befinde:

scp bigfile.zip titan-upload-from-work:
  vs.
scp bigfile.zip titan-upload-from-home:

Ich verwende normalerweise Mac und Linux.

Antwort1

Leider scheint es, wie erwähnt, keine Konfigurationsoption zur Begrenzung der Bandbreite zu geben. (Ich habe den Quellcode überprüft!)

Einige mögliche Lösungen sind die Verwendung eines Alias ​​für scp oder vielleicht einer Funktion. Bash ist normalerweise die Standard-Shell auf Mac und Linux, daher könnte dies funktionieren:

alias scp='scp -l 1000 '
     -or-
alias scp-throttle='scp -l 1000 '

(beachten Sie das Leerzeichen in den Anführungszeichen! 1 ) Dies würde dazu führenJEDENMit diesem scp-Befehl können Sie die Bandbreite drosseln. In Anbetracht Ihrer Situation ist dies möglicherweise die beste Lösung.

Die zweite Option könnte eine gute Wahl sein, da Sie scp für „normale“ Übertragungen und scp-throttle für langsamere Übertragungen verwenden können.

Oder eine Funktion, mit etwas mehr Grips:

function scp { if [ "$*" =~ "-upload" ]; then command scp -l 1000 "$@"; else command scp  "$@"; fi; }

Wenn wir im Grunde finden '-hochladen' irgendwo in den Argumenten führen wir die Übertragung mit der Bandbreitenbegrenzung durch, andernfalls erfolgt eine normale Übertragung.

Dies würde Ihnen ermöglichen, weiterhin mehrere Ihrer Namen/Aliase zur Bezeichnung von Aktionen zu verwenden.

  • scp aaa titan:- würde normal hochladen
  • scp aaa titan-upload:- würde drosseln
  • scp titan:aaa .- normal
  • scp titan-upload-from-home:aaa .- gedrosselt
  • scp a-file-to-upload titan:- ups, gedrosselt, keine Absicht!

BEARBEITEN:

1 – Das nachstehende Leerzeichen INNERHALB des Alias ​​ermöglicht eine weitere Aliaserweiterung nach dem Aliasbefehl. SEHR hilfreich/nützlich.Bash Man Page, __ALIASES__ section

verwandte Informationen