ทำไมไม่ใช้ rsync เสมอ


17

ฉันต้องการถามว่ามีเหตุผลใดที่จะไม่ใช้rsyncสำหรับทุกสิ่งและถูกทอดทิ้งcpหรือไม่?
ฉันไม่รู้rsyncและตอนนี้ฉันไม่รู้ว่าทำไมจึงcpมีความต้องการ


9
rsyncไม่สามารถใช้ได้ทุกที่cpคือ
Mat

3
ติดตั้งแบบไหน? ลินุกซ์? อันไหน? Unix? เหมือนกัน BSD? คุณไม่มีทางรู้ว่าสิ่งที่มาโดยค่าเริ่มต้น
terdon

5
ไม่มี "การติดตั้งเริ่มต้น" สำหรับ Linux อย่างแท้จริง ทุก distro มีชุดของแพ็คเกจหลักและโฮสต์ของชุดรูปแบบในนั้น นอกจากนี้เมื่อคุณต้องการทำงานกับระบบจำนวนมากการใช้เครื่องมือที่มีอยู่ทุกหนทุกแห่งทำให้สิ่งต่างๆง่ายขึ้น
Mat

4
@ Mat: มีการติดตั้งเริ่มต้น (หรือหลัก) ในขณะที่ linux distros ปฏิบัติตามผ่านฐานผู้ใช้ GNU พร้อม POSIX ซึ่งต้องการ (และกำหนดการทำงาน) cpแต่ไม่ใช่rsync: pubs.opengroup.org/onlinepubs/007904875 /utilities/contents.htm
goldilocks

1
ฉันค่อนข้างมั่นใจว่า Debian GNU / Linux จะติดตั้ง rsync ตามค่าเริ่มต้น อย่างไรก็ตามไม่สามารถใช้งานได้ในสภาพแวดล้อมการติดตั้งและกู้ภัย (ฉันใช้ก่อนหน้านี้ในวันนี้เพื่อถ่ายโอนเนื้อหาของพาร์ติชั่นรูทของฉันจากดิสก์หนึ่งไปยังดิสก์อื่นใช้ 7.1.0 amd64 ติดตั้งดีวีดี)
CVn

คำตอบ:


24

rsyncพูดอย่างเคร่งครัดใช่คุณสามารถใช้ จากman rsync(เน้นที่เหมือง):

Rsync เป็นเครื่องมือคัดลอกไฟล์ที่รวดเร็วและหลากหลายเป็นพิเศษ มันสามารถคัดลอกโลคัลไปยัง / จากโฮสต์อื่นผ่านเปลือกระยะไกลใด ๆ หรือไป / จากระยะไกล rsync daemon มันมีตัวเลือกจำนวนมากที่ควบคุมลักษณะการทำงานทุกด้านของมันและอนุญาตให้สเปคที่มีความยืดหยุ่นมากของชุดของไฟล์ที่จะ
คัดลอก มันมีชื่อเสียงในด้านการถ่ายโอนเดลต้าซึ่งช่วยลดปริมาณข้อมูลที่ส่งผ่านเครือข่ายโดยการส่งความแตกต่างระหว่างไฟล์ต้นฉบับและไฟล์ที่มีอยู่เท่านั้นในอนาคต Rsync ใช้กันอย่างแพร่หลายสำหรับการสำรองข้อมูลและการมิเรอร์และเป็นคำสั่งคัดลอกที่ดีขึ้นสำหรับการใช้ชีวิตประจำวัน

ตอนนี้บางครั้งมันก็ไม่คุ้มค่าที่จะพิมพ์ตัวละครพิเศษเหล่านั้นเพียงแค่ใช้รถถังเพื่อฆ่าแมลงวัน นอกจากนี้rsyncมักจะไม่ได้รับการติดตั้งตามค่าเริ่มต้นดังนั้นจึงcpเป็นเรื่องที่ดี


คุณหมายถึงไม่สามารถใช้งานได้เป็นส่วนหนึ่งของการติดตั้งเริ่มต้น แต่เป็นการดาวน์โหลดแยกต่างหาก
จิม

1
@ จิมใช่บางครั้งคุณต้องติดตั้งrsyncเองตามระบบที่คุณพบ หากคุณไม่มีrootสิทธิ์เข้าถึงที่อาจเป็นเรื่องยาก cpเป็น POSIX และจะอยู่ที่นั่นเสมอ
terdon

9
cpเป็นส่วนหนึ่งของcoreutilsของGNUดังนั้นมันจึงถูกติดตั้งบนระบบ Linux ทุกระบบในขณะที่rsyncไม่ใช่
Martin von Wittich

1
sometimes it is just not worth typing those few extra characters- ฉันใช้นามแฝงแล้วpcp(สำหรับ "ความคืบหน้าการคัดลอก") สำหรับสิ่งนั้น;)
Izkata

19

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

นอกจากนี้เมื่อไม่มีไฟล์ปลายทาง rsync ไม่ได้ให้ประโยชน์ใด ๆ เหนือ cp


1
ภายใต้วิธีการคัดลอกของ rsync ช้าลงอย่างมาก ดูunix.stackexchange.com/questions/374071/… . strace ของ cp แสดง (ขณะที่เขียนนี้), 32KB read / 32 KB ลำดับการเขียน Rsync ในขณะเดียวกันจะทำการอ่าน / 4092- ไบต์ + 4 ไบต์เขียนไปยังซ็อกเก็ต / อ่านจากซ็อกเก็ต / 250KB เขียนไปยังไฟล์ ฉันทำไฟล์ rsync ขนาด 36T ที่อัตราความเร็ว 130MB / s ฉันสามารถสามเท่าด้วย cp -a rsync ชนะอย่างที่คุณบอกเมื่อคุณต้องการที่จะ "ทำให้ 'นั้น' ดูเหมือน 'นี้'" ในไดเรกทอรีที่คล้ายกันอยู่แล้ว
Mike S

7

ฉันคิดว่าrsyncไม่จัดการการคัดลอกไฟล์หร็อมแหร็มในลักษณะตรงไปตรงมา cpโดยค่าเริ่มต้นจัดการที่ดีมาก


6
มันทำกับ-Sธง
terdon

2
@terdon, โอ้ดีโปรดดูที่บทความนี้: barricane.com/rsync-vm-sparse-inplace-kvm-vmware
wcang

อ่าขอบคุณคุณควรเพิ่มเข้าไปในคำตอบของคุณ sparseฉันเพิ่งได้อย่างรวดเร็วการสืบค้นหน้าคนสำหรับ
terdon

4

เนื่องจากการcpตั้งค่าสถานะนี้ขาด rsync:

-i, --interactive
       prompt before overwrite (overrides a previous -n option)

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