เมื่อฉันพยายามที่จะคัดลอกไฟล์ (ขนาด,) ผ่านเครือข่ายโดยใช้ scp ฉันได้รับข้อผิดพลาด<file> stalled
ทำไมสิ่งนี้เกิดขึ้น? ฉันจะแก้ไขมันได้อย่างไร
เมื่อฉันพยายามที่จะคัดลอกไฟล์ (ขนาด,) ผ่านเครือข่ายโดยใช้ scp ฉันได้รับข้อผิดพลาด<file> stalled
ทำไมสิ่งนี้เกิดขึ้น? ฉันจะแก้ไขมันได้อย่างไร
คำตอบ:
สิ่งนี้เกิดขึ้นเพราะscp
พยายามดึงแบนด์วิดท์ให้ได้มากที่สุดและการหน่วงเวลาใด ๆ การ จำกัด แบนด์วิดท์ (ด้วยตัวเลือก -l) จะแก้ไขได้
ตัวอย่างเช่นคุณอาจต้องการ จำกัด แบนด์วิดท์ไว้ที่ 1 MB / s (= 8192 Kbits / s):
scp -l 8192 <file> <destination>
-l 8192
หมายความว่า 8192 Kbit / วินาทีและ-l
อาจทำงานได้ถึง 1 Mbit / วินาที (ซึ่งดูเหมือนว่าจะล้าสมัยไปแล้วในปัจจุบัน)
ฉันจัดการเพื่อแก้ปัญหาโดยใช้ rsync:
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt user@host.com:/tmp/
โอกาสใดก็ตามที่คุณอยู่หลังไฟร์วอลล์ Cisco ASA ถ้าเป็นเช่นนั้นให้ปิด "การสุ่มหมายเลขลำดับ" และนั่นจะช่วยได้มาก - ปิดการใช้งาน TCP Offload (ethtool -K $ INTERFACE แล้วปิด gso off gro off) ถ้าคุณใช้ Cisco ASA กับ Broadcom NICs ในเซิร์ฟเวอร์ของคุณ .
เมื่อได้รับข้อความแสดงข้อผิดพลาดที่เราได้รับเมื่อ scp หยุดทำงานฉันสงสัยว่ามันเป็นการเข้ารหัสที่ล้มเหลว "ความถูกต้องของโฮสต์ 'myserver (10.10.11.12)' ไม่สามารถสร้างลายนิ้วมือกุญแจ ECDSA ได้คือ SHA256: + zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo src myserver: / tmp / bigfile " SCP ได้ประสบความสำเร็จกับตัวเลขอื่น มีปัญหากับรหัสเริ่มต้นที่เป่าพื้นที่บัฟเฟอร์หรือไม่?
อาจลองเพิ่ม "-c" ด้วยรหัสตัวเลขอื่นและดูว่าจะแก้ไขแผงลอยของคุณ