Lug
click ที่นี่เพื่อแสดงความเห็นเพิ่มเติม (คุณสามารถใส่เครื่องหมาย "~~~~" (tilde 4 ตัว) เพื่อแสดงวันเวลาที่โพสต์โดยอัตโนมัติ)

แม่แบบ:การใช้งาน Rsync

 Rsync เป็นทูลที่ใช้ในการแบ็คอัพหรือก็อปปี้ ( mirror ) สามารถทำการดาวน์โหลดหรืออัพโหลดได้ ลักษณะ การทำงานจะคล้ายๆ 

กับ FTP+tar Utility แต่จะมีความคล่องสูงมาก เหมาะสำหรับงาน Backup,Mirror โดยมีความสามารถต่างๆ คร่าวๆดังนี้

*สนับสนุนการแบ็คอัพทั้งแบบ Incremental และ แบบ Full *มีระบบการป้องกันความปลอดภัยสนับสนุนภายในตัว *สามารถุกำหนดผู้ใช้และรหัสผ่านเพื่อใช้งานโดยที่ไม่จำเป็นที่จะต้องเป็น user จริงๆ ในระบบ *สามารถกำหนดรูปแบบการทำงานให้เป็นในลักษณะอ่านอย่างเดียว หรือ เขียนอย่างเดียว หรือ ทั้งอ่านทั้งเขียน ได้เพื่อความคล่องตัว *กำหนดระดับผู้ใช้ให้สามารถที่ทำงานได้ *เพื่อความยืดหยุ่นในการทำงานสามารถกำหนดพอร์ทการทำงานได้ *etc.. :)

  เมื่อกำหนดค่าต่างๆ เรียบร้อยแล้ว ก็สามารถเรียกให้ทำงานได้ทันทีโดยเรียกคำสั่งผ่านทางคอมมาน์ไลน์ได้โดยตรง
หรือกำหนดให้ทำงานผ่าน inetd หรือ xinetd ได้ โดยใน FedoraCORE นั้นสามารถเรียกการทำงานผ่านระบบ xinetd
โดยเข้าไปแก้ที่ file ใน /xinetd.d/rsync
 ขั้นตอนการทำงาน
     1. สร้างคอนฟิกไฟล์ขึ้นมาเพื่อใช้กำหนดการทำงานของ  server และ secret 

ไฟล์ที่จะใช้เพื่อเก็บผู้ใช้ที่จะทำการตรวจสอบสิทธิการใช้งานในกรณีนี้ ผมสร้างไดเรกทอรี่ rsync.d ขึ้นมาเพื่อใช้เก็บคอนฟิกไฟล์ดังกล่าว root# mkdir /etc/rsync.d root# cd /etc/rsync.d root# touch rsyncd.conf root# ln -s /etc/rsyncd.d/rsyncd.conf /etc/rsyncd.conf

  2.กำหนดค่าต่างๆ เข้าไปในไฟล์ rsyncd.conf เพื่อกำหนดสภาวะแวดล้อมการทำงานของ rsync server 

รูปแบบของการกำหนดหนดไฟล์จะแบ่งเป็น ส่วนๆ คล้ายๆ การกำหนดค่าของ samba ข้างล่างยกตัวอย่าง การคอนฟิกค่าเพื่อจะใช้ Backup Mail Spool Directory

log file = /var/log/rsync.log port = 8002


[ MailSPool ]

comment = Directory Mail Spool Mail  
use chroot = true
uid = root
gid = root
path = /var/spool/mail/
use chroot = true
max verbosity = 2
read only = true
auth users = rsyncuser
secrets file = /etc/rsync.d/rsyncd.secrets
hosts allow = 192.168.0.1/24
exclude = somefile >> บางไฟล์ที่ไม่ต้องการ Backup

[ testbackup ]

 commment = test backup rsync

........

 comment  = ใช้กำหนดคำอธิบายเพื่อสามารถที่จะอธิบายได้ว่าไดเรกทอรี่นี้มีเพื่ออะไรเพื่อที่จะบอกรายละเอียดเพิ่มเติม
 use chroot = เมื่อกำหนดออปชั่นนี้แล้วลักษณะการเชื่อมต่อเข้าไปจะใช้รูปแบบ chroot ช่วยเพิ่มความปลอดภัยยิ่งขึ้น
 uid = user id ที่เราต้องการให้ทำการทำงาน 
 gid = group id คือ id ที่เราต้องการให้ผู้ใช้ภายใต้กลุ่มนั้นๆ มาใช้งาน
 path = directory ที่เราต้องการทำงานด้วย
 max verbosity = กำหนดรายละเอียดการ debug ลงไปใน log file มีประโยชน์เมื่อเราต้องการติดตามดูความผิดพลาดต่างๆ

ก็สามารถจะช่วยได้ดีทีเดียว

read only = กำหนดให้เป็นสถานะอ่านอย่างเดียวหรือไม่ โดยปกติแล้ว ค่าโดยปกติจะเป็นอนุญาติให้อ่านได้อย่างเดียว
auth users = กำหนดผู้ใช้ที่จะทำการตรวจสอบซึ่งเก็บไว้ใน rsyncd.secret
secrets file = ไฟล์ที่ใช้เก็บข้อมูลของผู้ที่เราจะใช้ในการตรวจสอบสิทธิ โดยลักษณะเป็น เท็กซ์ไฟล์ธรรมดา
host allow = กำหนดสิทธิได้ในระดับเครือข่ายหรือ host ที่เราจะอนุญาติให้ทำการ คอนเนกต์เข้ามาได้
exclude = ยกเว้น ไฟล์ใดๆ ที่เราไม่ต้องการให้มีการ backup 
log file = กำหนดไฟล์ที่ใช้เก็บล็อก
port = กำหนด พอร์ทการทำงานจากปกติ 833
หากต้องการกำหนดไดเรกทอรี่ใดๆ ขึ้นอีก ก็สามารถเพิ่มเข้าไปได้ โดยจะกำหนดเป็น section ๆ ไป

3. สั่งให้ทำงานได้ทันที

  โดยหากเป็นการกำหนดให้ทำงานผ่านทาง commandline ก็สั่งได้โดยตรงโดยใช้คำสั่ง

root# rsync --daemon

 หรือหากเป็น Fedora ก็เข้าไปที่ไดเรกทอรี่ /etc/xinetd.d เข้าไปแก้ไขไฟล์ที่ชื่อว่า rsync
               root# cd /etc/xinetd.d

root# vi rsync

  1. default: off
  2. description: The rsync server is a good addition to an ftp server, as it \
  3. allows crc checksumming etc.

service rsync { disable = yes << เปลี่ยนตรงนี้ให้เป็น no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }

3. สั่งให้ rsync ทำงาน root# service xinetd restart 4. พร้อมทำงานได้เลยทันที :)

ทีนี้มายังฝั่ง ไคลเอ็นต์กันบ้าง

    โดยปกติแล้วเราสามารถกำหนดได้ว่าจะทำการ backup เมื่อไหร่และอย่างไร ในกรณีนี้ผมทำเป็น bash script 

เพื่อสะดวกในการเรียกใช้งาน (เพราะคำสั่งยาวพอสมควาร :p ) นอกจากจะสามารถกำหนดว่าให้ทำงานได้ทันที หรือ กำหนดระยะเวลาการทำงาน ( cron job ) โดยมีรูปแบบตัวอย่างดังนี้

    ส่วนรายละเอียดเพิ่มเติม จะขอมาเพิ่มเติมภายหลังนะครับเรื่องการกำหนดฝั่งการทำงานของ ไคล์เอนต์ 

พอดีไม่ค่อยว่างหรือสะดวกที่จะเขียน สักเท่าไหร่ อย่างไรก็ดี ก็อยากให้พี่ๆ น้อง ๆ ที่ใช้งาน linux สามารถมาเพิ่มเติมหรือว่า ลบทิ้งก็ได้นะครับ ( กรณีที่ผิดพลาด หรือ ลบหมดเพื่อแก้ไข :p ) และหากผิดพลาดขาดตกบกพร่องประการใดขออภัยด้วยครับ ซึ่งหากจบเรื่องนี้แล้ว ก็กะจะพูดต่อเรื่องการ import ระบบ mail ที่เป็น mbox format และระบบเมล์เก่าๆ มาใช้กับ dovecot (maildir ) ครับ

    ขอบคุณครับ
    • หากรูปแบบ layout ดูประหลาดๆ ขออภัยด้วยครับ พอดีเพิ่งเคยน่ะครับ ขออภัยด้วยครับ