Rsync

Rsync เป็นโปรแกรม ไว้สำหรับ Backup ข้อมูล เป็น Directory หนึ่งไปยังอีก Directory ทำงานได้หลายโหมด หลักการทำงานมันจะเปรียบเทียบไฟล์ ให้เรา ถ้าไฟล์เดิมมีอยู่แล้วและยังไม่มีการเปลี่ยนแปลงอะไร ก็จะข้ามไฟล์นั้น ไป ทำให้เวลาในการ Backup ข้อมูลน้อย นอกจากนี้ ถ้านำ rsync ใช้ร่วมกับ ssh ก็สามารถ Backup ไฟล์ข้าม Server ได้ ซึ่ง rsync มีให้ใช้กับทุก OS นั่นหมายความว่าเรา สามารถ Backup Directory ข้าม Server ข้าม OS ได้ วิธีใช้งาน rsync มาดูคำสั่ง (ถ้า OS ที่ใช้ยังไม่มีโปรแกรมนี้ก็ติดตั้งก่อน) แบบแรก Backup Directory ใน Server เดียวกันไปไว้อีก Directory หนึ่งเช่น ต้องการ Backup /home ไปไวทีที่ /backup/xxxx/ ใช้คำสั่ง (ตัวอย่างใช้ OS FreeBSD)

rsync -av --exclude="home/admin/admin_backups/*.gz" /home /backup/xxx

ความหมาย Option แต่ละตัว -a คือ archive ทำให้ ไฟล์ตันฉบับกับไฟล์ปลายทางเหมือนกันทุกอย่าง -v คือ verbose ให้แสดงรายละเอียดระหว่างทำงานขึ้นมาบนหน้าจอ --exclude คือไม่รวมไฟล์ สามารถให้ รูปแบบ ได้เช่น ตามตัวอย่างหมายความว่า ไม่เอา ไฟล์ทุกไฟล์ที่ .gz ที่อยู่ใน home/admin/admin_backups/ * จากบทความที่แล้ว มาใช้ rsync ในการ Backup ข้อมูลกัน เป็นการ Backup ไฟล์ในเครื่องเดียวกัน

การ Backup ไฟล์จาก Server หนึ่งไปไว้อีก Server หนึ่ง

โปรแกรมที่ต้องการใช้ คือ rsync และ SSH Server

รูปแบบคำสั่ง

rsync -options -e ต้นทาง ปลายทาง ทั้งต้นทาง และ ปลายทางสามารถใช้ SSH ได้

ตัวอย่าง การ Backup ด้วยการ Transfer ไฟล์จาก Server IP xxx.xxx.xxx.xxx มาไว้ในเครื่องที่รันคำสั่ง

rsync -av --delete --exclude="home/admin" -e ssh root@xxx.xxx.xxx.xxx:/home /backup/xxx

อธิบายความหมาย

เป็นการ copy ไฟล์จาก server ip xxx.xxx.xxx.xxx folder home ทั้ง folder รวม folder ย่อยทุก folder ยกเว้น /home/admin

มาไว้ที่ /backup/xxx ของเครื่องที่รันคำสั่งนี้

--delete ให้ลบไฟล์ปลายทางถ้าไฟล์ต้นทางถูกลบไป

เพิ่มเติม

ถ้า xxx.xxx.xxx.xxx ไม่ได้ใช้ port 22 ให้ใส่ options

-p เพิ่มเข้าไปหลัง ip เช่น -p 1111

ตัวอย่างการใช้คำสั่ง rsync เพื่อ copy file จากเครื่อง client ไปยังเครื่อง server โดยการ copy file ชื่อไฟล์ (filetest.tar) จากเครื่อง client ไปยังเครื่อง server

rsync -av /home/ter/Desktop/testfile.tar abcd1234@192.168.1.36:/home/abcd1234/Dekstop

คำสั่ง rsync –help

-v , --verbose เพิ่มคำฟุ่มเฟื่อย

-q , --quiet ปราบปรามข้อความที่ไม่ผิดพลาด

--no -motd ระงับMOTDโหมด daemon (ดู caveat)

- c , --checksum ข้ามเวลาตรวจสอบไม่ใช้ mod-time และ size

-a , --archive โหมดเก็บข้อมูล เท่ากับ-rlptgoD (ไม่มี-H , -A , -X )

--no-OPTION ปิดตัวเลือกโดยนัย(เช่น--no-D )

- r , --recursive recurse ลงในไดเร็กทอรี

- R , --relative ใช้ชื่อเส้นทางสัมพัทธ์

--no-implied-dirs ไม่ได้ส่ง dirs โดยนัยกับ - สัมพันธ์

-b , --backup ทำการสำรองข้อมูล (ดู--suffix & --backup-dir )

--backup-dir = DIR ทำการสำรองข้อมูลลงในลำดับชั้นตามDIR

- suffix = SUFFIX ต่อท้ายสำรอง(ค่าเริ่มต้น~ w / o - สำรองข้อมูล - dir )

-u , --update ข้ามไฟล์ที่ใหม่กว่าในเครื่องรับ

-- inplace อัปเดตไฟล์ปลายทางในตำแหน่ง

-- append ผนวกข้อมูลลงในไฟล์ที่สั้นลง

--append-verify - ใช้ w / ข้อมูลเก่าใน checksum ไฟล์

- d , --dirs โอนไดเรกทอรีโดยไม่ต้องทำใหม่

-l , --links คัดลอกsymlinksเป็น symlinks

-L, --copy-links แปลงไฟล์ symlink เป็นไฟล์ referent / dir

--copy-unsafe-links มีการแปลงเฉพาะลิงก์ที่ "ไม่ปลอดภัย" เท่านั้น

--safe-links ละเว้นการเชื่อมโยงไปยังจุดที่อยู่นอกต้นไม้

-k, --copy-dirlinks เปลี่ยน symlink เป็น dir ไปเป็น referir dir

-K, --keep-dirlinks รักษา dir ที่เชื่อมโยงกับผู้รับเป็น dir

-H, --hard-links รักษาลิงก์ที่ยาก

-p, --perms รักษาสิทธิ์

-E, --executability รักษาความสามารถในการปฏิบัติการได้

--chmod=CHMOD ส่งผลกระทบต่อสิทธิ์การใช้งานแฟ้มและ / หรือไดเรกทอรี

-A , --acls รักษาACL (นัย-p )

-X , --xattrs รักษาคุณลักษณะเพิ่มเติม

-o, --owner สงวนสิทธิ์เจ้าของ ( ผู้ใช้ superเท่านั้น)

-g, --group รักษากลุ่ม

--devices เก็บรักษาไฟล์อุปกรณ์ (เฉพาะผู้ใช้ super เท่านั้น)

--specials เก็บไฟล์พิเศษ

-D เช่นเดียวกับ- อุปกรณ์ - สเปเชียล

-t, --times รักษาเวลาในการปรับเปลี่ยน

-O , --omit-dir-times ละเว้นไดเรกทอรีจากช่วงเวลา

--super รับกิจกรรมผู้ใช้ super-user

--fake-super เก็บ / กู้คืน attented มีสิทธิ์ใช้ xattrs

-S, --sparse จัดการไฟล์ที่เบาบางได้อย่างมีประสิทธิภาพ

-n , --dry-run ทำการทดลองใช้โดยไม่มีการเปลี่ยนแปลง

-W , --whole-file คัดลอกไฟล์ทั้งหมด (w / o delta-xfer algorithm)

-x , --one-file-system อย่าข้ามขอบเขตของระบบแฟ้ม

-B , - block-size = SIZE บังคับให้มีการบล็อก checksum คงที่

-e , --rsh = COMMAND ระบุเปลือกระยะไกลที่จะใช้

--rsync-path = PROGRAM ระบุrsyncเพื่อรันบนเครื่องระยะไกล

--existing ข้ามการสร้างไฟล์ใหม่ในเครื่องรับ

--ignore-existing ข้ามการอัปเดตไฟล์ที่มีอยู่ในเครื่องรับ

--remove-source-files ผู้ส่งลบไฟล์ที่ซิงโครไนซ์ (ไม่ใช่ dir)

--del นามแฝงสำหรับ--deelete-during

--delete ลบไฟล์ที่ไม่เกี่ยวข้องออกจาก dirs ปลายทาง

--delete-before เครื่องรับจะลบออกก่อนที่จะถ่ายโอน

--delete-during ลบระหว่างการถ่ายโอน

--delete-delay พบการลบในระหว่างลบหลังจาก

--delete-after ผู้รับจะลบหลังจากการโอนย้ายไม่ใช่ในระหว่างดำเนินการ

--delete-excluded ลบไฟล์ที่ยกเว้นจาก dirs dirs

--ignore-errors ลบแม้ว่าจะมีข้อผิดพลาดI / Oก็ตาม

--force บังคับให้ลบ dirs แม้ว่าจะไม่ว่าง

--max-delete = NUM ไม่ลบไฟล์มากกว่าNUM รายการ

--max-size = SIZE ไม่ถ่ายโอนไฟล์ใด ๆ ที่ใหญ่กว่าSIZE

- min-size = SIZE ไม่ถ่ายโอนไฟล์ใด ๆ ที่มีขนาดเล็กกว่าSIZE

--partial เก็บไฟล์ที่ถ่ายโอนไว้บางส่วน

--partier-dir = DIR ใส่ไฟล์ที่ถ่ายโอนบางส่วนลงในDIR

--delay-updates ใส่ไฟล์ที่อัปเดตทั้งหมดไว้ในตำแหน่งสุดท้าย

-m , --prune-empty-dirs ตัดรายการไดเรกทอรีว่างจากรายการไฟล์

--numeric-ids ไม่กำหนดค่า uid / gid ตามชื่อผู้ใช้ / กลุ่ม

--timeout = SECONDS ตั้งค่า I / O timeout เป็นวินาที

--contimeout = SECONDS กำหนดเวลาการเชื่อมต่อ daemon ในไม่กี่วินาที

-I , --ignore-times อย่าข้ามไฟล์ที่ตรงกับขนาดและเวลา

--size-only ข้ามไฟล์ที่ตรงกับขนาด

--modify-window = NUM เปรียบเทียบ mod-times กับความถูกต้องที่ลดลง

-T , --temp-dir = DIR สร้างไฟล์ชั่วคราวในไดเรกทอรีDIR

-y, --fuzzy หาไฟล์ที่คล้ายกันสำหรับพื้นฐานถ้าไม่มีไฟล์ปลายทาง

--compare-dest = DIR เปรียบเทียบไฟล์ที่ได้รับเทียบกับDIR

--copy-dest = DIR ... รวมสำเนาของไฟล์ที่ไม่ได้รับการเปลี่ยนแปลง

--link-dest = DIR hardlink ไปยังไฟล์ในDIRเมื่อไม่มีการเปลี่ยนแปลง

-z , --compress บีบอัดข้อมูลไฟล์ระหว่างการถ่ายโอน

--compress-level = NUM ตั้งระดับการบีบอัดอย่างชัดเจน

--skip-compress = LIST ข้ามการบีบอัดไฟล์ที่มีคำต่อท้ายในLIST

-C , --cvs-exclude ละเว้นไฟล์แบบเดียวกับที่CVSทำ

-f , --filter = RULE เพิ่มกฎการกรองไฟล์

-F เช่นเดียวกันกับ --filter = 'dir-merge /.rsync-filter'

--exclude = PATTERN ยกเว้นไฟล์ที่ตรงกับPATTERN

--exclude-from=FILE อ่านไม่รวมรูปแบบจากFILE

--include = PATTERN ไม่รวมไฟล์ที่ตรงกับPATTERN

--include-from = FILE อ่านรวมรูปแบบจากFILE

--files-from = FILE อ่านรายการชื่อไฟล์ต้นทางจากFILE

-0, --from0 * ไฟล์จาก / ตัวกรองทั้งหมดจะถูกคั่นด้วย 0 วินาที

-s , - protect-args ไม่มีช่องว่าง; อักขระ wildcard เท่านั้น

--address = ADDRESS ผูกที่อยู่สำหรับซ็อกเก็ตขาออกไปยัง daemon

--port = PORT ระบุหมายเลขพอร์ตสลับสองเท่า

--sockopts = OPTIONS ระบุตัวเลือกTCP ที่กำหนดเอง

--blocking-io ใช้การปิดกั้นI / Oสำหรับรีโมตเชลล์

--stats ให้สถิติการถ่ายโอนไฟล์

-8 , --8-bit-output ปล่อยให้อักขระที่เป็นบิตสูงไม่อยู่ในเอาต์พุต

-h, --human-readable ตัวเลขผลลัพธ์ในรูปแบบที่มนุษย์สามารถอ่านได้

--progress แสดงความคืบหน้าในระหว่างการถ่ายโอน

-P เช่นเดียวกับ- ละอองเกเรียม -

-i, --itemize-changes นำเสนอข้อมูลสรุปเกี่ยวกับการเปลี่ยนแปลงทั้งหมด

--out-format = FORMAT อัปเดตเอาท์พุทโดยใช้FORMAT ที่ระบุ

--log-file = FILE ล็อกสิ่งที่เรากำลังทำกับFILE ที่ระบุ

--log-file-format = FMT บันทึกการอัพเดตโดยใช้FMT ที่ระบุ

--password-file = FILE อ่านรหัสผ่าน daemon-access จากFILE

--list-only รายการไฟล์แทนการคัดลอกพวกเขา

--bwlimit = KBPS จำกัด แบนด์วิดท์ I / O; KBytesต่อวินาที

--write-batch = FILE เขียนการอัปเดตแบทช์เป็นFILE

--only-write-batch=FILE เช่น- เขียนชุดแต่ไม่มีการปรับปรุง dest

--read-batch = FILE อ่านการอัปเดตเป็นแบทช์จากFILE

--protocol = NUM บังคับใช้โปรโตคอลรุ่นเก่าที่จะใช้

--iconv = CONVERT_SPEC ขอเปลี่ยนชื่อไฟล์ของcharset

- checksum-seed = NUM ชุดบล็อก / ไฟล์เมล็ดตรวจสอบ (ขั้นสูง)

-4 , --ipv4 ชอบIPv4

-6 , --ipv6 ชอบIPv6

--version พิมพ์หมายเลขรุ่น

-h , --help แสดงความช่วยเหลือ

Last updated