Rsync เป็นยูทิลิตี้บรรทัดคำสั่งที่มีชื่อเสียงในด้านคุณสมบัติการซิงโครไนซ์ข้อมูลใน Linux คุณสามารถใช้มันเพื่อซิงโครไนซ์ไฟล์บนระบบเดียวกันและต่างกัน นอกจากนี้ยังมีฟีเจอร์ต่างๆ เช่น การบีบอัดไฟล์ การเข้ารหัส การซิงโครไนซ์แบบเลือกสรร และอื่นๆ อีกมากมายซึ่งทำให้มันเหนือกว่าเครื่องมืออื่นๆ สามารถเปรียบเทียบไดเร็กทอรีต้นทางและปลายทางเพื่อถ่ายโอนเฉพาะไฟล์ที่เพิ่มและอัพเดตใหม่จากไดเร็กทอรีต้นทาง
คุณสมบัติทั้งหมดนี้ช่วยลดเวลารอและเพิ่มผลผลิต อย่างไรก็ตาม ผู้ใช้ Linux จำนวนมากไม่ทราบว่าคุณสมบัติของ rsync นั้นไม่คุ้นเคยกับการถ่ายโอนไฟล์ที่มีประสิทธิภาพ บล็อกนี้จะอธิบายโดยย่อถึงวิธีการใช้ rsync เพื่อการถ่ายโอนไฟล์ระหว่างไดเร็กทอรีใน Linux อย่างมีประสิทธิภาพ
วิธีใช้ Rsync เพื่อการถ่ายโอนไฟล์ระหว่างไดเร็กทอรีใน Linux อย่างมีประสิทธิภาพ
มีหลายวิธีในการใช้ rsync ใน Linux ดังนั้นเราจะแบ่งส่วนนี้เพิ่มเติมเพื่ออธิบายการใช้งานในสถานการณ์ต่างๆ
การติดตั้ง Rsync
แม้ว่ายูทิลิตี้ rsync จะถูกติดตั้งไว้ล่วงหน้าในระบบ Linux ส่วนใหญ่ แต่คุณสามารถติดตั้งได้โดยการรันคำสั่งต่อไปนี้:
ซูโดะ ฉลาด ติดตั้ง rsync -และ
ตอนนี้ให้ตรวจสอบเวอร์ชัน rsync ที่ติดตั้งไว้
เมื่อเสร็จแล้ว ให้รันคำสั่งต่อไปนี้เพื่อเริ่มการซิงค์แหล่งที่มาและเป้าหมาย:
rsync -โอ แหล่งที่มา เป้า
-
- แหล่งที่มาคือไดเร็กทอรีที่คุณต้องการซิงโครไนซ์ไฟล์
- Target คือไดเร็กทอรีปลายทางที่คุณต้องการจัดเก็บไฟล์เหล่านั้น
การถ่ายโอนไฟล์ในเครื่อง
คุณสามารถใช้ rsync เพื่อคัดลอกและวางไฟล์ภายในระบบเดียวกันโดยใช้คำสั่งต่อไปนี้:
ซูโดะ rsync -ของ แหล่งที่มา_เส้นทาง / เป้าหมาย_เส้นทาง /
-
- ตัวเลือก “-a” ย่อมาจาก archive ซึ่งจะรักษาคุณลักษณะของไฟล์ไว้ระหว่างการถ่ายโอน
- “-v” ใช้สำหรับโหมดรายละเอียดซึ่งคุณสามารถดูไฟล์ที่กำลังถ่ายโอนได้
ตัวอย่างเช่น ใช้เพื่อคัดลอกไฟล์จากไดเร็กทอรี 'ดาวน์โหลด' ไปยังไดเร็กทอรี 'Document':
ซูโดะ rsync -ของ ~ / ดาวน์โหลด ~ / เอกสาร
การถ่ายโอนไฟล์ระยะไกล
คุณสามารถใช้ rsync เพื่อถ่ายโอนไฟล์จากระยะไกลระหว่างเครื่องสองเครื่องที่เชื่อมต่อผ่านเครือข่ายเป็นหลัก สำหรับสิ่งนี้ คุณต้องระบุโฮสต์ระยะไกลโดยใช้ไวยากรณ์ที่กำหนดต่อไปนี้:
rsync -ของ -มันคือ สช ผู้ใช้ @ รีโมท_โฮสต์: / เส้นทาง / ถึง / แหล่งที่มา / / เส้นทาง / ถึง / เป้า /
ด้วยตัวเลือก “-e ssh” คุณสามารถบอกให้ระบบใช้เชลล์ที่ปลอดภัยหรือ SSH โดยเฉพาะสำหรับการถ่ายโอนไฟล์นี้
ลบไฟล์ออกจากไดเรกทอรีเป้าหมาย (ซึ่งไม่มีอยู่ในแหล่งที่มา)
สมมติว่าคุณต้องการทำให้ทั้งสองไดเร็กทอรีเหมือนกันและมีไฟล์ที่คล้ายกัน ในกรณีนี้ คุณต้องลบไฟล์พิเศษ (ถ้ามี) ที่อยู่ในไดเร็กทอรีเป้าหมาย โชคดีที่ด้วย rsync คุณสามารถทำได้โดยใช้ตัวเลือก “– –delete” หากต้องการทราบวิธี ให้ทำตามคำสั่งต่อไปนี้:
rsync -ของ --ลบ / เส้นทาง / ถึง / แหล่งที่มา / / เส้นทาง / ถึง / เป้า /
ไม่รวมไฟล์ระหว่างการถ่ายโอน
ขณะถ่ายโอนไดเร็กทอรีทั้งหมด คุณอาจต้องยกเว้นบางไฟล์หรือไดเร็กทอรีย่อยบางไฟล์ ดังนั้น คุณสามารถใช้ตัวเลือก “– –แยก” ได้ด้วยวิธีต่อไปนี้:
rsync -ของ --ไม่รวม 'ชื่อไฟล์' / เส้นทาง / ถึง / แหล่งที่มา / / เส้นทาง / ถึง / เป้า /
ดรายรัน
เมื่อใช้ rsync สำหรับไดเร็กทอรีขนาดใหญ่ คุณควรทดลองใช้งานก่อน ด้วยวิธีนี้ ระบบจะสาธิตว่าคำสั่งนี้จะทำอะไรโดยไม่ต้องถ่ายโอนไฟล์ อย่างไรก็ตาม วิธีนี้จะช่วยป้องกันการโอนไฟล์ที่ไม่ต้องการได้ หากต้องการดำเนินการทดลองวิ่ง ให้ใช้ตัวเลือก “– –dry-run” ในคำสั่งต่อไปนี้:
rsync -ของ --dry-run / เส้นทาง / ถึง / แหล่งที่มา / / เส้นทาง / ถึง / เป้า /
ตัวอย่างเช่น ดำเนินการทดลองก่อนซิงโครไนซ์ไฟล์จากไดเรกทอรี 'ดาวน์โหลด' ไปยังไดเรกทอรี 'เอกสาร':
แสดงตัวบ่งชี้ความคืบหน้า
เนื่องจากผู้ใช้บางรายต้องการให้มีตัวบ่งชี้ความคืบหน้าเพื่อดูความคืบหน้าของการถ่ายโอน คุณจึงสามารถเปิดใช้งานได้โดยใช้คำสั่งต่อไปนี้:
rsync -ของ --ความคืบหน้า แหล่งที่มา / เป้า /
จากตัวอย่างก่อนหน้านี้พร้อมกับตัวบ่งชี้ความคืบหน้า คุณจะได้ผลลัพธ์ตามที่แสดงในภาพต่อไปนี้:
บทสรุป
Rsync เป็นเครื่องมืออันทรงพลังในการถ่ายโอนไฟล์ระหว่างไดเร็กทอรีใน Linux บล็อกนี้จะอธิบายกรณีการใช้งานต่างๆ เช่น การซิงโครไนซ์ข้อมูลภายในและระยะไกล นอกจากนี้ยังมีคำสั่งย่อยหลายคำสั่งเพื่ออำนวยความสะดวกในการใช้งานบางอย่าง เช่น การยกเว้นไฟล์ระหว่างการถ่ายโอน และการลบไฟล์จากปลายทาง แม้จะมีฟังก์ชั่นเหล่านี้ทั้งหมด แต่ผู้ใช้ก็ยังสามารถทำผิดพลาดได้ ดังนั้นคุณควรดำเนินการแบบแห้งสำหรับการถ่ายโอนไฟล์ขนาดใหญ่เสมอ