Kiedy próbowałem skopiować plik (o rozmiarze) przez sieć za pomocą scp, pojawia się błąd <file> stalled
Dlaczego tak się dzieje? Jak to rozwiązać?
Kiedy próbowałem skopiować plik (o rozmiarze) przez sieć za pomocą scp, pojawia się błąd <file> stalled
Dlaczego tak się dzieje? Jak to rozwiązać?
Odpowiedzi:
Dzieje się tak, ponieważ scp
próbuje zdobyć jak największą przepustowość, a każde opóźnienie (przez zaporę ogniową itp.) Może ją zatrzymać. Ograniczenie przepustowości (z opcją -l) to naprawi.
Na przykład możesz chcieć ograniczyć przepustowość do 1 MB / s (= 8192 Kbits / s):
scp -l 8192 <file> <destination>
-l 8192
oznacza to 8192 Kbit / sekundę, a -l
może działać do 1 Mbit / sekundę (co wydaje się obecnie nieco przestarzałe).
Udało mi się to rozwiązać za pomocą rsync:
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt user@host.com:/tmp/
Czy jest jakaś szansa, że jesteś za firewallem Cisco ASA? Jeśli tak, wyłącz „losowość numerów sekwencji”, a to bardzo pomoże - wyłącz także TCP Offload (ethtool -K $ INTERFACE tso off gso off gro off), jeśli korzystasz z Cisco ASA z Broadcom NIC na swoim serwerze .
Biorąc pod uwagę komunikat o błędzie, który otrzymaliśmy, gdy scp utknął w miejscu, podejrzewałem, że szyfrowanie się nie powiodło. „Nie można ustalić autentyczności hosta„ mój serwer (10.10.11.12) ”. Odcisk klucza ECDSA to SHA256: + zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo. Mając to na uwadze, uruchomiłem„ scp -c aes128-ctr /tmp/test.dan/big. src myserver: / tmp / bigfile ". scp zakończyło się sukcesem z alternatywnym szyfrem. Czy występuje problem z domyślnym szyfrem wysadzającym przestrzeń bufora?
Spróbuj dodać „-c” z alternatywnym szyfrem i sprawdź, czy to rozwiązuje twoje przeciągnięcie.