ขัดจังหวะ rsync ด้วย ctrl-c ฉันควรใช้ `- บางส่วน 'หรือ` - ผนวก'?


14

ฉันต้องการขัดจังหวะrsyncด้วยctrl-c(สมมติว่าหลังจากครึ่งไฟล์ได้รับการถ่ายโอน) และดำเนินการต่อโดยไม่ต้องส่งข้อมูลที่ถ่ายโอนแล้ว

ข้อมูล stackexchange / google ที่ฉันพบมีข้อขัดแย้ง ผมพบว่าบางส่วนบางคนที่บอกว่าการใช้งานและบางคนบอกว่าการใช้งาน--partial --appendสำหรับฉันดูเหมือนว่าพวกเขาทั้งสองจะทำงาน

หากฉันต้องการที่จะขัดจังหวะ rsync กับ ctrl-c ฉันควรใช้--partialหรือ--appendไม่?

หากทั้งสองจะทำงานได้ดีกว่าการใช้หนึ่งกับอีก

คำตอบ:


8

หากต้องการรีสตาร์ท--partialก็เพียงพอ ใช้--inplaceหากคุณไม่ต้องการrsyncสร้างไฟล์ชั่วคราวที่ผสานข้อมูลที่คัดลอกแล้วและไฟล์ใหม่ตัวอย่างเช่นหากrsyncจะมีปัญหาการอนุญาตให้สร้างไฟล์ชั่วคราวในโฟลเดอร์เป้าหมาย

ใช้เฉพาะใน--appendกรณีที่คุณสามารถรับประกันได้ว่าข้อมูลที่คัดลอกบางส่วนยังคงเหมือนแหล่งที่มา (โดยทั่วไปนี่เป็นการเพิ่มประสิทธิภาพที่ผิดพลาด)


1
ดังนั้นเมื่อฉันใช้ตัวเลือกข้างต้น (จริง ๆ แล้วใช้ - ผนวกตรวจสอบ) และ rsync ยังคงอ้างว่ามันเริ่มต้นจากจุดเริ่มต้นและฉันไม่เห็นการเปลี่ยนแปลงใด ๆ ในขนาดไฟล์และเวลาที่เหลือของไฟล์คือสิ่งที่มันเป็นเดิม เมื่อฉันเริ่มการคัดลอก rsync กำลังโกหกหรือฉันควรจะกังวล?
Michael

@Michael หากคุณมีแหล่งที่มาและปลายทางในท้องถิ่นการเปลี่ยนแปลงกฎทั้งหมด
roaima

ฉันทำมันผ่าน LAN แต่หลังจากการทดลองอีกเล็กน้อยปรากฏว่าปัญหาคือเนื่องจาก--append-verifyจริง ๆ แล้วต้องอ่านส่วนของไฟล์ทั้งสองด้านที่มีอยู่จริง ๆ t ไม่เร็วขึ้นเนื่องจากคอขวด เป็นไดรฟ์ที่เก่ากว่าในด้านการอ่านไม่ใช่ LAN
Michael

@Michael ดีใช่ถ้าคุณขอให้ยืนยันข้อมูลที่ส่งไปแล้วก็ต้องอ่านข้อมูล!
roaima

1
@alper ฉันไม่เคยสังเกตเห็นตัวเลือกนั้นมาก่อน ดูเหมือนว่าจะเป็นการดีที่สุดที่จะใช้--partial-dirแต่ฉันยังไม่ได้ลอง
roaima

3
  • --append สันนิษฐานว่าไฟล์อาจมีอยู่แล้วในปลายทางมันเพิ่งทำให้ rsync ไม่ได้ตรวจสอบเนื้อหาที่มีอยู่แล้ว (แต่ดูด้านล่าง)
  • --partial บอก rsync ว่าอย่าลบไฟล์ที่ถูกถ่ายโอนบางส่วน

นอกจากนี้คุณยังจะต้อง--inplaceใช้--partial(มันมีความหมายโดยนัย--append)

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


หากฉันต้องการขัดจังหวะ rsync ด้วย ctrl-c ฉันจะใช้--appendหรือไม่ เพราะ--partialด้วยตัวเองจะไม่กลับมาทำงาน
เทรเวอร์บอยด์สมิ ธ

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

1
ใน Fedora 20 man rsyncตัวเลือก--appendพูดว่า... Implies --inplace
เทรเวอร์บอยด์สมิ ธ

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

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