ความแตกต่างที่สำคัญระหว่างเครื่องมือเหล่านี้คือวิธีคัดลอกไฟล์
scp
โดยทั่วไปจะอ่านไฟล์ต้นฉบับและเขียนไปยังปลายทาง มันทำสำเนาเชิงเส้นธรรมดาในพื้นที่หรือผ่านเครือข่าย
rsync
ยังคัดลอกไฟล์ในเครื่องหรือบนเครือข่าย แต่มันใช้อัลกอริทึมการถ่ายโอนเดลต้าพิเศษและการปรับให้เหมาะสมไม่กี่เพื่อให้การดำเนินการเร็วขึ้นมาก พิจารณาการโทร
rsync A host:B
rsync
จะตรวจสอบขนาดไฟล์และการประทับเวลาการแก้ไขของทั้งAและBและข้ามการประมวลผลใด ๆ เพิ่มเติมหากตรงกัน
หากไฟล์ปลายทางBมีอยู่แล้วอัลกอริทึมการโอนเดลต้าจะทำให้แน่ใจว่าความแตกต่างระหว่างAและBจะถูกส่งผ่านสาย
rsync
จะเขียนข้อมูลไปยังแฟ้มชั่วคราวTแล้วแทนที่แฟ้มปลายทางBกับTเพื่อให้ดูการปรับปรุง "อะตอม" กับกระบวนการที่อาจจะมีการใช้B
ความแตกต่างระหว่างพวกเขาเกี่ยวข้องกับการภาวนา rsync
มีตัวเลือกบรรทัดคำสั่งมากมายให้ผู้ใช้ปรับพฤติกรรมของมัน สนับสนุนกฎตัวกรองที่ซับซ้อนทำงานในโหมดแบทช์โหมด daemon ฯลฯscp
มีสวิตช์เพียงไม่กี่ตัว
โดยสรุปใช้scp
สำหรับงานประจำวันของคุณ คำสั่งที่คุณพิมพ์นาน ๆ บนเชลล์เชิงโต้ตอบของคุณ มันใช้ง่ายกว่าและในกรณีเหล่านี้rsync
การปรับให้เหมาะสมจะไม่ช่วยอะไรมาก
สำหรับงานที่เกิดขึ้นเช่นงานการใช้งานcron
rsync
ดังที่กล่าวไว้ในการเรียกใช้หลายครั้งมันจะใช้ประโยชน์จากข้อมูลที่ถ่ายโอนแล้วทำงานได้อย่างรวดเร็วและประหยัดทรัพยากร มันเป็นเครื่องมือที่ยอดเยี่ยมในการทำให้ทั้งสองไดเรกทอรีตรงกันกับเครือข่าย
นอกจากนี้เมื่อจัดการกับไฟล์ขนาดใหญ่ให้ใช้rsync
กับ-P
ตัวเลือก หากการถ่ายโอนถูกขัดจังหวะคุณสามารถกลับมาทำงานต่อได้ในที่ที่หยุดโดยการออกคำสั่งอีกครั้ง ดูซิดกษัตริย์ของคำตอบ