เหตุใด scp จึงหยุดทำงาน ฉันจะแก้ไขมันได้อย่างไร


51

เมื่อฉันพยายามที่จะคัดลอกไฟล์ (ขนาด,) ผ่านเครือข่ายโดยใช้ scp ฉันได้รับข้อผิดพลาด<file> stalled ทำไมสิ่งนี้เกิดขึ้น? ฉันจะแก้ไขมันได้อย่างไร


ฉันชอบrcloneสำหรับสิ่งนี้; ฉันไม่เคยมีปัญหาใด ๆ กับมัน
Hatshepsut

ฉันยกเลิกและรีสตาร์ทคำสั่ง scp และปัญหาก็หายไปสำหรับฉัน
กิโลจูลส์

คำตอบ:


71

สิ่งนี้เกิดขึ้นเพราะscpพยายามดึงแบนด์วิดท์ให้ได้มากที่สุดและการหน่วงเวลาใด ๆ การ จำกัด แบนด์วิดท์ (ด้วยตัวเลือก -l) จะแก้ไขได้

ตัวอย่างเช่นคุณอาจต้องการ จำกัด แบนด์วิดท์ไว้ที่ 1 MB / s (= 8192 Kbits / s):

 scp -l 8192 <file> <destination>

ที่มา: http://www.aixmind.com/?p=1371 - Wayback Machine


ขอบคุณสำหรับคำตอบและลิงค์ไปยังแหล่งข้อมูล แต่ฉันคิดว่าแหล่งที่มาของคุณบอกว่านั่น-l 8192หมายความว่า 8192 Kbit / วินาทีและ-lอาจทำงานได้ถึง 1 Mbit / วินาที (ซึ่งดูเหมือนว่าจะล้าสมัยไปแล้วในปัจจุบัน)
elmicha

2
@elmicha 8192Kb == 1MB
Lelouch Lamperouge

@ รู้เรื่องอ๊ะคุณพูดถูก
elmicha

2
เพื่อชี้แจง: ตัวอย่าง จำกัด แบนด์วิดท์ของ scp ไว้ที่ 8192 Kbit / วินาที ผู้เขียนบทความต้นฉบับแนะนำว่าหมายเลขนี้ควรใช้งานได้ดีสำหรับการเชื่อมต่อไม่เกิน 1 Mbit / วินาที
Erwin Wessels

1
ทำงานเหมือนเสน่ห์ :)
Saurabh

5

ฉันจัดการเพื่อแก้ปัญหาโดยใช้ rsync:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt user@host.com:/tmp/

2

โอกาสใดก็ตามที่คุณอยู่หลังไฟร์วอลล์ Cisco ASA ถ้าเป็นเช่นนั้นให้ปิด "การสุ่มหมายเลขลำดับ" และนั่นจะช่วยได้มาก - ปิดการใช้งาน TCP Offload (ethtool -K $ INTERFACE แล้วปิด gso off gro off) ถ้าคุณใช้ Cisco ASA กับ Broadcom NICs ในเซิร์ฟเวอร์ของคุณ .


นั่นเป็นอัจฉริยะ การเปลี่ยนแปลงนั้นเป็นแบบถาวรหรือฉันต้องวางคำสั่งไว้ที่อื่นหรือไม่ เพื่อให้ชัดเจนคุณต้องตั้งค่านั้นบน NIC ของคุณไม่ใช่ในอินเตอร์เฟส cscotun
mjaggard

1

เมื่อได้รับข้อความแสดงข้อผิดพลาดที่เราได้รับเมื่อ scp หยุดทำงานฉันสงสัยว่ามันเป็นการเข้ารหัสที่ล้มเหลว "ความถูกต้องของโฮสต์ 'myserver (10.10.11.12)' ไม่สามารถสร้างลายนิ้วมือกุญแจ ECDSA ได้คือ SHA256: + zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo src myserver: / tmp / bigfile " SCP ได้ประสบความสำเร็จกับตัวเลขอื่น มีปัญหากับรหัสเริ่มต้นที่เป่าพื้นที่บัฟเฟอร์หรือไม่?

อาจลองเพิ่ม "-c" ด้วยรหัสตัวเลขอื่นและดูว่าจะแก้ไขแผงลอยของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.