สิ่งที่ควรรู้
- คัดลอกตามประเภทไฟล์: rsync /home/jon/Desktop/data/*.jpg /home/jon/Desktop/backupdata/
- คัดลอกตามขนาดไฟล์: rsync --max-size=2k /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/
- คัดลอกโฟลเดอร์ทั้งหมด: rsync --recursive /home/jon/Desktop/data /home/jon/Desktop/data2
บทความนี้อธิบายการใช้โปรแกรมถ่ายโอนไฟล์ rsync ใน Linux เพื่อคัดลอกไดเรกทอรีและไฟล์ รวมถึงการยกเว้นไฟล์อย่างเป็นระบบ เหมาะสำหรับสำรองข้อมูลเพื่อเก็บถาวรโดยหลีกเลี่ยงไฟล์ที่ไม่ต้องการ
ไวยากรณ์คำสั่ง
การใช้คำสั่ง rsync ให้ถูกต้องต้องปฏิบัติตามไวยากรณ์ที่ถูกต้อง:
rsync [OPTION]... [SRC]... [DEST] rsync [OPTION]... [SRC]... [USER@]HOST:DEST rsync [OPTION]... [SRC]... [USER@]HOST::DEST rsync [OPTION]... [SRC]... rsync://[USER@]HOST[:PORT]/DEST rsync [OPTION]... [USER@]HOST:SRC [DEST] rsync [OPTION]... [USER@]HOST::SRC [DEST] rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
ตัวเลือก (option switches) ที่ใช้บ่อย:
- -v, --verbose: เพิ่มความละเอียด (แสดงรายละเอียดมากขึ้น)
- --info=FLAGS: ข้อความข้อมูลโดยละเอียด
- --debug=FLAGS: ข้อความดีบั๊กโดยละเอียด
- --msgs2stderr: การจัดการเอาต์พุตพิเศษสำหรับดีบั๊ก
- -q, --quiet: ปิดข้อความที่ไม่ใช่ข้อผิดพลาด
- --no-motd: ปิดข้อความวันของโหมดดีมอน
- -c, --checksum: ข้ามไฟล์โดยอิงจากเช็คซัม ไม่ใช่เวลาแก้ไขและขนาด
- -r, --recursive: เข้าสู่ไดเรกทอรีย่อยเพื่อไฟล์เพิ่มเติม
- -b, --backup: สำรองข้อมูล
- --backup-dir=DIR: สำรองข้อมูลไปยังลำดับชั้นไดเรกทอรีที่ตรงกัน
- --suffix=SUFFIX: เพิ่มข้อความต่อท้ายไฟล์ที่สำรอง
- -d, --dirs: ถ่ายโอนเฉพาะไดเรกทอรี โดยไม่เข้าไปข้างใน
ตัวอย่างคำสั่ง
ใช้ rsync ร่วมกับตัวเลือกเหล่านี้เพื่อปรับแต่งกลยุทธ์การสำรองข้อมูล
คัดลอกเลือกสรรตามประเภทไฟล์
rsync /home/jon/Desktop/data/*.jpg /home/jon/Desktop/backupdata/
ตัวอย่างนี้คัดลอกไฟล์ JPG ทั้งหมดจากโฟลเดอร์ /data/ ไปยัง /backupdata/ บนเดสก์ท็อปของผู้ใช้ Jon
คัดลอกไฟล์ตามขนาด
rsync --max-size=2k /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/
ตัวอย่างนี้ซับซ้อนกว่า เพราะตั้งค่าให้ ไม่ คัดลอกไฟล์ที่ใหญ่กว่า 2,048 KB คัดลอกเฉพาะไฟล์ที่เล็กกว่าขนาดที่ระบุ
ใช้ k, m, g สำหรับกิโล ไม่ก้า กิกะไบต์ (ตัวคูณ 1,024) หรือ kb, mb, gb สำหรับตัวคูณ 1,000
rsync --min-size=30mb /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/
ทำได้เหมือนกันกับ --min-size ตัวอย่างนี้ rsync คัดลอกเฉพาะไฟล์ขนาด 30 MB ขึ้นไป
rsync --min-size=30mb --progress /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/
ใช้ตัวเลือก --progress เพื่อติดตามความคืบหน้าจนถึง 100% - สะดวกเมื่อคัดลอกไฟล์ขนาดใหญ่
คัดลอกโฟลเดอร์ทั้งหมด
rsync --recursive /home/jon/Desktop/data /home/jon/Desktop/data2
ตัวเลือก --recursive ให้วิธีง่ายในการคัดลอกโฟลเดอร์ทั้งหมดไปยังตำแหน่งอื่น เช่น โฟลเดอร์ /data2/ ในตัวอย่าง
คำสั่งนี้คัดลอกโฟลเดอร์ทั้งหมดพร้อมเนื้อหาไปยังตำแหน่งใหม่
ยกเว้นไฟล์บางไฟล์
rsync -r --exclude="*.deb" /home/jon/Desktop/data /home/jon/Desktop/backupdata
คัดลอกโฟลเดอร์ทั้งหมดแต้อยกเว้นไฟล์ที่มีนามสกุลเฉพาะ เช่น .deb ในตัวอย่าง โฟลเดอร์ /data/ ถูกคัดลอกไป /backupdata/ แต่ไฟล์ .deb ทั้งหมดถูกยกเว้น