จากบทความที่แล้ว มาใช้ 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 [email protected]:/home /backup/xxx
อธิบายความหมาย
เป็นการ copy ไฟล์จาก server ip xxx.xxx.xxx.xxx folder home ทั้ง folder รวม folder ย่อยทุก folder ยกเว้น /home/admin
มาไว้ที่ /backup/xxx ของเครื่องที่รันคำสั่งนี้
-a, -v, --exclude ดูได้จากบทความ มาใช้ rsync ในการ Backup ข้อมูลกัน
--delete ให้ลบไฟล์ปลายทางถ้าไฟล์ต้นทางถูกลบไป
เพิ่มเติม
ถ้า xxx.xxx.xxx.xxx ไม่ได้ใช้ port 22 ให้ใส่ options
-p เพิ่มเข้าไปหลัง ip เช่น -p 1111
ตัวอย่าง
rsync -av --delete --exclude="home/admin" -e 'ssh -p 1111 ' [email protected]:/home /backup/xxx
สำหรับถ้าต้องการดูโปรแกรสไฟล์ที่กำลังโอนใช้ สามารถใส่ option --progress ,
ถ้าต้องการบีบอัดไฟล์ระหว่างการโอนย้ายสามารถใส่ option -z เพิ่ม
rsync -avz --progress --delete --exclude="home/admin" -e 'ssh -p 1111 ' [email protected]:/home /backup/xxx
ไว้บทความต่อไปจะนำวิธีใช้ rsync แบบไม่ต้องกรอกรหัสผ่านมาฝากนะครับ
อัพเดด 2019-08-02 มาแล้ว วิธี rsync แบบไม่ต้องกรอกรหัสผ่าน ทำตามบทความนี้ได้เลย
ตัวเลือกของ rsync มีหลายประเภทที่ทำงานต่างกัน ต่อไปนี้คือคำอธิบายตัวเลือกที่แบ่งตามหมวดหมู่เพื่อให้เข้าใจง่ายขึ้น:
การแสดงผลและการบันทึกข้อมูล (Logging and Verbosity)
- --verbose, -v: เพิ่มรายละเอียดของข้อมูลที่แสดงระหว่างการทำงาน
- --quiet, -q: ลดรายละเอียดที่แสดง เหลือเพียงข้อผิดพลาด
- --info=FLAGS: ควบคุมการแสดงผลข้อมูลอย่างละเอียด
- --debug=FLAGS: แสดงข้อมูลดีบักอย่างละเอียด
- --stats: แสดงสถิติการถ่ายโอนไฟล์
- --progress: แสดงความก้าวหน้าของการถ่ายโอนไฟล์
- --log-file=FILE: บันทึกกิจกรรมการทำงานลงไฟล์ที่กำหนด
- --log-file-format=FMT: กำหนดรูปแบบการบันทึกข้อมูลลงไฟล์
การจัดการไฟล์และไดเรกทอรี (File and Directory Handling)
- --recursive, -r: ทำการคัดลอกไดเรกทอรีและไฟล์ย่อยทั้งหมด
- --dirs, -d: คัดลอกไดเรกทอรีโดยไม่คัดลอกไฟล์ย่อย
- --files-from=FILE: อ่านรายชื่อไฟล์ที่จะคัดลอกจากไฟล์ที่กำหนด
- --exclude=PATTERN: ไม่รวมไฟล์ที่ตรงกับรูปแบบที่กำหนด
- --include=PATTERN: รวมไฟล์ที่ตรงกับรูปแบบที่กำหนด
- --delete: ลบไฟล์ที่ไม่มีอยู่ในแหล่งต้นฉบับออกจากเครื่องปลายทาง
- --backup, -b: สำรองไฟล์ที่จะถูกแทนที่หรือลบ
การรักษาคุณสมบัติของไฟล์ (Preserving File Properties)
- --perms, -p: รักษาสิทธิ์การเข้าถึงไฟล์
- --owner, -o: รักษาข้อมูลเจ้าของไฟล์
- --group, -g: รักษาข้อมูลกลุ่มของไฟล์
- --times, -t: รักษาเวลาการแก้ไขไฟล์
การปรับปรุงประสิทธิภาพ (Performance Tuning)
- --compress, -z: บีบอัดข้อมูลในระหว่างการถ่ายโอน
- --bwlimit=RATE: จำกัดอัตราการใช้แบนด์วิดท์
- --whole-file, -W: คัดลอกไฟล์แบบเต็มโดยไม่ใช้แอลกอริธึม delta-xfer
การเชื่อมต่อและความปลอดภัย (Connectivity and Security)
- --rsh=COMMAND, -e: กำหนดเชลล์รีโมตที่ใช้ในการเชื่อมต่อ
- --rsync-path=PROGRAM: กำหนดโปรแกรม rsync ที่จะรันบนเครื่องรีโมต
ข้อมูลเหล่านี้ถูกรวบรวมจากคำอธิบายโดยย่อของตัวเลือก rsync ที่สำคัญ แต่ละตัวเลือกมีความสำคัญและสามารถใช้งานได้หลากหลายในการคัดลอกหรือซิงโครไนซ์ข้อมูลระหว่างเครื่องคอมพิวเตอร์ การเรียนรู้ที่จะใช้ตัวเลือกเหล่านี้อย่างเหมาะสมสามารถช่วยให้คุณจัดการข้อมูลของคุณได้ดียิ่งขึ้นและทำให้กระบวนการทำงานมีประสิทธิภาพสูงขึ้น.