Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีใช้ rsync คัดลอกไฟล์และโฟลเดอร์ใน Linux

สิ่งที่ควรรู้

  • คัดลอกตามประเภทไฟล์: 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 ทั้งหมดถูกยกเว้น