ทำการถ่ายโอนไฟล์เดียวต่อโดย rsync


22

ใน Ubuntu ฉันต้องการคัดลอกไฟล์ขนาดใหญ่จากฮาร์ดไดรฟ์ของฉันไปยังไดรฟ์ที่ถอดออกได้ด้วย rsync ด้วยเหตุผลบางอย่างการดำเนินการไม่สามารถทำได้ในการวิ่งครั้งเดียว ดังนั้นฉันจึงพยายามหาวิธีใช้ rsync เพื่อทำการคัดลอกไฟล์ต่อจากที่ที่มันถูกทิ้งไว้ครั้งสุดท้าย

ฉันได้ลองใช้ตัวเลือก - บางส่วนหรือ - แทน แต่ด้วยความคืบหน้าฉันพบ rsync กับ - บางส่วนหรือ - สถานที่จริงเริ่มจากจุดเริ่มต้นแทนจากสิ่งที่ถูกทิ้งไว้ครั้งสุดท้าย การหยุด rsync ด้วยตนเองก่อนและตรวจสอบขนาดของไฟล์ที่ได้รับยังยืนยันสิ่งที่ฉันพบ

แต่ด้วย - ผนวก rsync เริ่มต้นจากสิ่งที่ถูกทิ้งไว้ครั้งสุดท้าย

ฉันสับสนอย่างที่ฉันเห็นบน manpage - บางส่วน - แทนที่หรือ - ผนวกดูเหมือนจะเกี่ยวข้องกับการกลับมาคัดลอกจากสิ่งที่เหลืออยู่ในครั้งที่แล้ว มีคนอธิบายความแตกต่างได้ไหม ทำไม - บางส่วนหรือ - ไม่ทำงานเพื่อเริ่มการคัดลอกต่อ เป็นความจริงหรือไม่ที่การกลับมาทำสำเนาต่อ rsync ต้องทำงานกับตัวเลือก - ต่อท้าย?

นอกจากนี้หากไฟล์บางส่วนถูกทิ้งไว้โดย mv หรือ cp ไม่ใช่โดย rsync rsync จะ - ผนวกอย่างถูกต้องหรือไม่

ขอบคุณและขอแสดงความนับถือ!


ความเข้าใจของฉันเกี่ยวกับการทำงานของ rsync นั้นมี จำกัด แต่เพื่อตอบคำถามสุดท้ายของคุณ หาก cp ไม่สมบูรณ์ rsync ควรทำการคัดลอกต่อ ฉันเชื่อว่า rsync hashs files ในลักษณะที่จะพบว่าส่วนเริ่มต้นของไฟล์เหมือนกันและคัดลอกส่วนที่เหลือของไฟล์
Scott McClenning

คำตอบ:


25

ดูหน้า rsync บางหน้า:

--append
สิ่งนี้ทำให้ rsync อัปเดตไฟล์โดยต่อท้ายข้อมูลลงในส่วนท้ายของไฟล์ซึ่งสันนิษฐานว่าข้อมูลที่มีอยู่แล้วในด้านการรับจะเหมือนกันกับการเริ่มต้นของไฟล์ทางด้านการส่ง

--inplace
ตัวเลือกนี้จะเปลี่ยนวิธีการถ่ายโอนไฟล์ rsync เมื่อข้อมูลจำเป็นต้องได้รับการอัปเดต: แทนที่จะใช้วิธีการเริ่มต้นในการสร้างสำเนาไฟล์ใหม่และย้ายไปไว้ที่เดิมเมื่อเสร็จสิ้น ไฟล์ปลายทาง

--partial
โดยค่าเริ่มต้น rsync จะลบไฟล์ที่ถ่ายโอนบางส่วนหากการถ่ายโอนถูกขัดจังหวะ ในบางกรณีการเก็บไฟล์ที่ถ่ายโอนบางส่วนเป็นที่พึงปรารถนามากกว่า

--partial --appendเสียงเช่นถ้าไฟล์มีขนาดใหญ่มากที่คุณต้องการใช้ ( --appendบอกเป็นนัย--inplace) หากไฟล์ใหญ่มีการเปลี่ยนแปลงให้ปล่อย--appendและ rsync จะตรวจสอบจุดเริ่มต้นของไฟล์เพื่อให้แน่ใจว่าตรงกับไฟล์ต้นฉบับ --inplaceสำหรับฉันฟังดูเป็นอันตรายยกเว้นว่าคุณกำลังซิงค์ไฟล์ขนาดใหญ่คุณไม่ต้องการให้ rsync สร้างไฟล์ชั่วคราวใหม่ของส่วนเริ่มต้นทำการถ่ายโอนต่อจากนั้นจึงลบไฟล์เก่าเพื่อวางไฟล์ใหม่ การถ่ายโอนจะเร็วขึ้นหากคุณสามารถใช้ไฟล์เดียวกันไม่ต้องพูดถึงพื้นที่ดิสก์ที่จำเป็นสำหรับการถ่ายโอนจะน้อยลง

นอกจากนี้ฉันพบจากจุดถ่ายโอนไฟล์ทั้งหมดจุดคัดลอกเร็วกว่า rsync อย่างไรก็ตามหากฉันต้องการอัปเดตไฟล์ฉันได้ซิงค์กับ rsync เร็วกว่าการถ่ายโอนไฟล์ทั้งหมดอีกครั้ง (เช่นที่ฉันกล่าวไว้ข้างต้น) Rsync น่าจะสามารถดำเนินการต่อจาก cp ได้

ฉันหวังว่านี่จะช่วยได้.


1
คุณอาจต้องการดูรายงานข้อผิดพลาดนี้: list.samba.org/archive/rsync/2012-June/027615.html
Stefan Schmidt

จุดดีเกี่ยวกับการใช้ cp ที่เร็วขึ้นโดยค่าเริ่มต้นและ rsync เพื่อ "ซ่อมแซม" กระบวนการซีพีที่ใช้งานไม่ได้! Neat :)
Samuel Lampa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.