การทำ rsync กันระหว่างเครื่องที่เป็น FreeBSD และ Debian
นะครับ สามารถไปประยุกต์ใช้ ระหว่าง OS Unix ตัวอื่นได้เหมือนกัน .. เริ่มกันเลยครับ
ฝั่ง Server
Step 1: Install rsync
freebsd-1# cd /usr/ports/net/rsync
freebsd-1# make install clean
Step 2: Config rsyncd.conf
freebsd-1# vi /usr/local/etc/rsyncd.conf
ใส่ข้อมูลไปดังนี้ครับ
[www]
comment = web server backup
path = /home/ton # ตรงนี้เป็น path ของ server ที่เราต้องการ backup
auth users = ton # user ที่ใช้ในการ Authen
uid = ton
gid = ton
secrets file = /usr/local/etc/rsyncd.secrets # ที่เก็บ file สำหรับเก็บ user-passwd
read only = no
Step 3: Create rsyncd.secrets
freebsd-1# vi /usr/local/etc/rsyncd.secrets
ใส่
ton:123456
freebsd-1# chmod 600 /usr/local/etc/rsyncd.secrets
Step 4: Edit rc.conf
freebsd-1# vi /etc/rc.conf
ใส่
rsyncd_enable=”YES”
Step 5: Start Rsync daemon
freebsd-1# /usr/local/etc/rc.d/rsyncd start
Step 6: Rsync daemon ลองดูว่ามี daemon ประมาณนี้หรือยัง
freebsd-1# sockstat | grep rsync
root rsync 60398 3 dgram -> /var/run/logpriv
root rsync 60398 4 tcp6 *:873 *:*
root rsync 60398 5 tcp4 *:873 *:*
ถ้ามีก็เป็นอันเรียบร้อยแล้วครับสำหรับฝั่ง Server ของเรา
ฝั่ง Client
Step 1: Install rsync
debian-client# apt-get install rsync
Step 2: Test rsync
debian-client# rsync -avz -e ssh ton@server1.example.com:/home/ton/ /home/ton/
Step 3: Create The Keys On mirror.example.com
debian-client# mkdir /root/rsync
debian-client# ssh-keygen -t dsa -b 1024 -f /root/rsync/mirror-rsync-key
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
<– Enter
Enter same passphrase again:
Your identification has been saved in /root/rsync/mirror-rsync-key.
Your public key has been saved in /root/rsync/mirror-rsync-key.pub.
The key fingerprint is:
6c:34:c9:29:cf:16:a3:c8:72:c0:28:b3:c6:61:75:a2 root@www
<– Enter
Step 4: Copy our public key to server1.example.com:
debian-client# scp /root/rsync/mirror-rsync-key.pub ton@server1.example.com:/home/ton/
กลับมาดูที่ฝั่ง Server อีกครั้งครับ
Step 7: Create authorized_keys
(Login as ton!)
freebsd-1# mkdir ~/.ssh
freebsd-1# chmod 700 ~/.ssh
freebsd-1# mv ~/mirror-rsync-key.pub ~/.ssh/
freebsd-1# cd ~/.ssh
freebsd-1# touch authorized_keys
freebsd-1# chmod 600 authorized_keys
freebsd-1# cat mirror-rsync-key.pub >> authorized_keys
Step 8: Connect from mirror.example.com only
(Still as ton!)
freebsd-1# vi /home/someuser/.ssh/authorized_keys
ใส่ เข้าไปก่อนข้อความใน file เดิม
command=”/home/ton/rsync/checkrsync”,from=”mirror.example.com”,no-port-forwardin
g,no-X11-forwarding,no-pty
ตอนนี้ก็เป็นอันเสร็จแล้วครับสำหรับฝั่ง Server เราจะสามารถใช้ rsync ผ่าน sshd ได้
โดยไม่ต้องใส่ user - password ทำให้สะดวกขึ้นเวลาทำ auto backup
มาดูที่ฝั่ง Client กันอีกครั้งครับ
Step 5: Test rsync
debian-client# rsync -avz –delete -e “ssh -i /root/rsync/mirror-rsync-key”
ton@server1.example.com:/home/ton/ /home/ton/
Step 6: Create crond job
debian-client# crontab -e
ใส่
*/5 * * * * /usr/bin/rsync -azq –delete -e “ssh -i /root/rsync/mirror-rsync-key”
ton@server1.example.com:/home/ton/ /home/ton/
ก็เสร็จแล้วครับสำหรับการทำ rsync ระหว่าง FreeBSD กับ debian
It's Pond's blog. IT Professional Engineer works for international companies. I am willing to learn new things almost focus to Linux that's my second lover except my wife : P
Tuesday, June 8, 2010
Monday, June 7, 2010
Screen command
คำสั่ง screen
คำสั่ง screen คือคำสั่งที่เก็บ session ของงานไว้โดนที่เราสามารถเรียกมาดูใหม่ได้ถึงแม้จะปิด terminal นั้นทิ้งไปแล้ววิธีใช้
ขั้นแรกต้องสร้าง ~/.screenrc ก่อนดังนี้# use visual bell
vbell on
# replace ctrl-A by ctrl-O
escape ^Oo
# set a big scrolling buffer
defscrollback 5000
# Set the caption on the bottom line
caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"- เวลาเรียกใช้งานเรียก
screen
- พอเรียกเสร็จจะมีหน้าจอโปรแกรม screen ให้เรากด space หรือ enter จากนั้นเราจะได้ prompt ใหม่ซึ่งเป็น prompt จากคำสั่ง screen
- เรียกใช้โปแกรมภายใต้คำสั่ง screen ต่อได้เลยเช่น
irssi
- ถ้าใช้เสร็จแล้วอยามf
ctrl+o d
- ถ้าต้องการกลับมาแสดงหน้าจอของโปรแกรมที่เรียกค้างไว้ให้สั่ง
screen -r -d
การใช้งานขั้นสูง
- เราสามารถเปิด session ของscreen ได้หลายๆอันเช่นหน้าแรกเปิด irssi หน้าสองเปิด top แต่อยู่ใน terminal เดียวกันทำได้ดังนี้
screen irssi
- หลังจากสั่ง2คำสั่งแล้ว ให้กดshotcut ตามนี้ เพื่อสร้าง session ใหม่
ctrl+o c
- จากนั้นสั่งคำสั่งต่อไปเลย
top
- จะเห็นได้ว่าตรงบรรทัดล่างสุดจะมีบอกว่า มีหน้า 1,2 โผล่ขึ้นมา
- การสลับหน้าจอระหว่าง 1 และ 2 ทำดังนี้
ctrl+o n ctrl+o p
การใช้งาน Rsync
การใช้งาน 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.droot# vi rsync - default: off
- description: The rsync server is a good addition to an ftp server, as it \
- allows crc checksumming etc.
3. สั่งให้มันทำงาน root# service xinetd restart 4. พร้อมทำงานได้เลยทันที :)
ทีนี้มายังฝั่ง ไคลเอ็นต์กันบ้าง
โดยปกติแล้วเราสามารถกำหนดได้ว่าจะทำการ backup เมื่อไหร่และอย่างไร ในกรณีนี้ผมทำเป็น bash scriptเพื่อสะดวกในการเรียกใช้งาน (เพราะคำสั่งยาวพอสมควาร :p ) นอกจากจะสามารถกำหนดว่าให้ทำงานได้ทันที หรือ กำหนดระยะเวลาการทำงาน ( cron job ) โดยมีรูปแบบตัวอย่างดังนี้
ส่วนรายละเอียดเพิ่มเติม จะขอมาเพิ่มเติมภายหลังนะครับเรื่องการกำหนดฝั่งการทำงานของ ไคล์เอนต์พอดีไม่ค่อยว่างหรือสะดวกที่จะเขียน สักเท่าไหร่ อย่างไรก็ดี ก็อยากให้พี่ๆ น้อง ๆ ที่ใช้งาน linux สามารถมาเพิ่มเติมหรือว่า ลบทิ้งก็ได้นะครับ ( กรณีที่ผิดพลาด หรือ ลบหมดเพื่อแก้ไข :p ) และหากผิดพลาดขาดตกบกพร่องประการใดขออภัยด้วยครับ ซึ่งหากจบเรื่องนี้แล้ว ก็กะจะพูดต่อเรื่องการ import ระบบ mail ที่เป็น mbox format และระบบเมล์เก่าๆ มาใช้กับ dovecot (maildir ) ครับ
ขอบคุณครับ
- หากรูปแบบ layout ดูประหลาดๆ ขออภัยด้วยครับ พอดีเพิ่งเคยน่ะครับ ขออภัยด้วยครับ
Subscribe to:
Posts (Atom)