มีวิธีที่จะดำเนินการกระบวนการคำสั่ง scp (secure copy) ที่เสียหายต่อไปใน Linux หรือไม่? [ปิด]


241

ฉันกำลังคัดลอกไฟล์ 7.5 GB ไปยังเซิร์ฟเวอร์ระยะไกลโดยใช้คำสั่งscp ในบางช่วงเวลาการถ่ายโอนไฟล์แตกและฉันต้องเริ่มต้นใหม่อีกครั้ง

จำนวนชั่วคราวของไฟล์ที่ถ่ายโอนหายไปทั้งหมดหรือไม่ ฉันสามารถเริ่มการถ่ายโอนจากที่หยุดเมื่อก่อนหน้านี้ได้หรือไม่? ถ้าไม่เป็นเช่นนั้นมีคำสั่ง Unix บรรทัดคำสั่งถ่ายโอนไฟล์มาตรฐานสำหรับการทำเช่นนั้นหรือไม่?


1
พบคำตอบเพิ่มเติมในคำถามนี้พร้อม rsyncการแก้ปัญหาโดยไม่ต้อง
tanius

คำตอบ:


400

หากคุณต้องการเริ่มการถ่ายโอน scp จากโลคัลเป็นรีโมตให้ลอง rsync:

rsync --partial --progress --rsh=ssh local_file user@host:remote_file

เวอร์ชั่นสั้นตามที่ระบุโดย @ aurelijus-rozenas :

rsync -P -e ssh local_file user@host:remote_file

โดยทั่วไปแล้วลำดับของ args สำหรับ rsync คือ

rsync [options] SRC DEST

34
สำหรับพอร์ตที่แตกต่างจากการใช้งานปกติ 22 อย่างrsync -P -e "ssh -p 222" SRC DEST
asofyan

4
และหากrsync -eถูกขัดจังหวะฉันพบว่าการเปลี่ยนชื่อ <filename>. <6funnychars> เป็น <filename> ที่ปลายทางก่อนที่จะดำเนินการrsync -eต่อ
gaoithe

5
rsync ใช้งานได้เฉพาะเมื่อคุณมีในอีกด้านหนึ่ง
dothebart

1
rsync จะทำการถ่ายโอนไฟล์ที่เริ่มใน scp ต่อไปหรือไม่? จำเป็นต้องใช้คำสั่ง rsync สองคำสั่งจริงหรือไม่, rsync หนึ่งรายการ, ไม่ใช่คำสั่ง scp, เพื่อเริ่มการคัดลอกจากนั้นจึงยกเลิกการเชื่อมต่อจากนั้นจึงใช้คำสั่ง rsync อันที่สองเพื่อคัดลอกต่อไปหรือไม่
Geoffrey Anderson

4
ไม่สำคัญว่าคุณจะได้รับการดาวน์โหลดบางส่วนในตอนแรกได้อย่างไร คุณอาจเริ่มด้วย scp แล้วจึงจบด้วย rsync
Tom McClure

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