Warum kommt scp zum Stillstand? Wie löse ich das?

52

Beim Versuch, eine Datei (von Größe) mit scp über das Netzwerk zu kopieren, wird eine Fehlermeldung angezeigt. <file> stalled Warum passiert das? Wie löse ich das?

Lelouch Lamperouge
quelle
Ich mag rclone dafür; Ich hatte noch nie Probleme damit.
Hatschepsut
Ich habe den Befehl scp abgebrochen und neu gestartet, und das Problem ist für mich
behoben

Antworten:

72

Dies geschieht, weil scpversucht wird, so viel Bandbreite wie möglich zu nutzen, und eine Verzögerung (durch eine Firewall usw.) dies verhindern kann. Das Begrenzen der Bandbreite (mit der Option -l) behebt das Problem.

Beispielsweise möchten Sie möglicherweise die Bandbreite auf 1 MB / s (= 8192 KBit / s) begrenzen:

 scp -l 8192 <file> <destination>

Quelle: http://www.aixmind.com/?p=1371 - Wayback-Maschine

muru
quelle
Vielen Dank für Ihre Antwort und den Link zur Quelle. Aber ich denke, Ihre Quelle sagt, dass -l 8192dies 8192 Kbit / s bedeutet, und das -lkönnte bis zu 1 Mbit / s funktionieren (was heutzutage ein bisschen veraltet zu sein scheint).
Elmicha
2
@elmicha 8192Kb == 1 MB
Lelouch Lamperouge
@Eknath Ups, du hast recht.
Elmicha
2
Nur zur Verdeutlichung: Das Beispiel begrenzt die Bandbreite von scp auf 8192 Kbit / s. Der Autor des Quellartikels schlägt vor, dass diese Nummer für Verbindungen mit bis zu 1 Mbit / s gut funktionieren sollte.
Erwin Wessels
1
Arbeitete wie ein Zauber :)
Saurabh
5

Ich habe es mit rsync geschafft:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt [email protected]:/tmp/
user1453912
quelle
2

Besteht die Möglichkeit, dass Sie sich hinter einer Cisco ASA-Firewall befinden? Wenn dies der Fall ist, deaktivieren Sie die "Zufallsgenerierung von Folgenummern" und das wird viel helfen. Deaktivieren Sie auch TCP-Offload (ethtool -K $ INTERFACE tso off gso off gro off), wenn Sie sich auf einem Cisco-ASA mit Broadcom-NICs in Ihrem Server befinden .

Dotwaffle
quelle
Das ist genial Ist diese Änderung dauerhaft oder muss ich den Befehl irgendwo ablegen? Um klar zu sein, müssen Sie dies auf Ihrer Netzwerkkarte einstellen, nicht auf der cscotun-Schnittstelle.
mjaggard
1

Angesichts der Fehlermeldung, die wir erhalten haben, als der SCP blockiert ist, habe ich vermutet, dass die Verschlüsselung fehlgeschlagen ist. "Die Authentizität des Hosts 'myserver (10.10.11.12)' kann nicht festgestellt werden. Der ECDSA-Schlüsselfingerabdruck lautet SHA256: + zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo" Aus diesem Grund habe ich "scp -c aes128-ctr /tmp/tmpig.dftestan/ src myserver: / tmp / bigfile ". scp war erfolgreich mit der alternativen Verschlüsselung. Gibt es ein Problem mit der Standardverschlüsselung, die einen Pufferraum sprengt?

Versuchen Sie vielleicht, "-c" mit einer alternativen Chiffre hinzuzufügen, und prüfen Sie, ob Ihr Stall dadurch behoben wird.

Dan Snavely
quelle