Rain WikiWindows · Linux · Android

rsync

เครื่องมือบรรทัดคำสั่งทุกดิสทริบิวชัน Linux

rsync ใช้คัดลอกไฟล์ระหว่างไดเรกทอรีหรือคอมพิวเตอร์ โดยจะถ่ายโอนเฉพาะส่วนที่มีการเปลี่ยนแปลงเท่านั้น ทำให้การคัดลอกซ้ำและการสำรองข้อมูลทำได้อย่างรวดเร็ว โปรแกรมนี้ทำงานได้ทั้งในเครื่องหรือผ่าน SSH และสามารถรักษาค่าสิทธิ์ เวลา และลิงก์ต่างๆ ไว้ได้ด้วยตัวเลือก -a (archive)

1ตัวเลือกทั่วไป

-a (archive) ใช้รักษาค่าสิทธิ์ เวลา เจ้าของไฟล์ และสัญลักษณ์ลิงก์ พร้อมทั้งคัดลอกแบบเรียกซ้ำ -v ใช้แสดงรายการไฟล์แต่ละไฟล์ -h ใช้แสดงขนาดไฟล์ในรูปแบบที่อ่านง่าย -z ใช้บีบอัดข้อมูลผ่านเครือข่าย และ --progress ใช้แสดงความคืบหน้า

2เครื่องหมายทับปิดท้าย

rsync -a src/ dest/ จะคัดลอกเนื้อหาภายใน src ไปยัง dest ส่วน rsync -a src dest/ จะคัดลอกตัวไดเรกทอรีเอง โดยสร้างเป็น dest/src การเข้าใจผิดในส่วนนี้เป็นข้อผิดพลาดที่พบบ่อยที่สุดของ rsync

3--delete และ --dry-run

--delete จะลบไฟล์ในปลายทางที่ไม่มีอยู่ในแหล่งข้อมูลต้นทางแล้ว เพื่อให้ปลายทางเป็นภาพสะท้อนที่ตรงกันทุกประการ --dry-run (-n) จะแสดงผลลัพธ์ที่จะเกิดขึ้นโดยไม่มีการเปลี่ยนแปลงใดๆ และควรใช้ร่วมกับ --delete ก่อนเสมอ

วิธีการสำรองข้อมูลโฟลเดอร์ไปยังเซิร์ฟเวอร์

  1. ทดสอบก่อน: rsync -avhn --delete ~/Documents/ user@server:/backup/Documents/
  2. ตรวจสอบรายการไฟล์ที่จะถูกคัดลอกหรือลบ
  3. ดำเนินการจริง: rsync -avh --delete ~/Documents/ user@server:/backup/Documents/
  4. เรียกใช้คำสั่งเดิมซ้ำในภายหลัง ระบบจะถ่ายโอนเฉพาะส่วนที่มีการเปลี่ยนแปลงเท่านั้น

ข้อควรระวัง

  • เมื่อใช้ --delete หากระบุพาธต้นทางผิดอาจทำให้ปลายทางว่างเปล่าได้ ควรเรียกใช้พร้อมกับ -n ก่อนเสมอ
  • การทำภาพสะท้อน (mirror) ไม่ใช่ประวัติการสำรองข้อมูล: ไฟล์ที่ถูกลบหรือเสียหายจะถูกสะท้อนไปยังปลายทางด้วยเช่นกัน

แหล่งอ้างอิง

  1. หน้าคู่มือ rsync(1) download.samba.org
  2. หน้าโครงการ rsync rsync.samba.org

ตรวจสอบล่าสุด: