ทำ Mirror ด้วย rsync แบบง่าย
Submitted by wd on 4 September, 2007 - 07:38.
เอามาจาก ThaiLinuxCafe: ทำ mirror ด้วย rsync อย่างง่าย
ต้องการ syncronize ไดเรกทอรี /var/www ของเครื่อง server1.example.com มายังไดเรกทอรี /var/www ของเครื่อง mirror.example.com ซึ่งมีข้อดีกว่าการคัดลอกธรรมดาด้วย cp หรือ scp ตรงที่ ถ้าเราลบไฟล์ใน server1 ไฟล์ใน mirror จะถูกลบตามไปด้วย ทำให้ทั้งสองเครื่องมีความสดใหม่เหมือนกัน
- ทำที่ทั้งสองเครื่อง server1.example.com และ mirror.example.com
- ติดตั้งและปรับแต่ง rsync
# aptitude install rsync # vi /etc/default/rsync
RSYNC_ENABLE=true
# dpkg-reconfigure rsync
- ทำที่เครื่อง server1.example.com
- เพิ่มผู้ใช้ชื่อ someuser
server1:# useradd -m -s /bin/bash someuser
( -m คือให้คัดลอกรูปแบบจากไดเรคทอรี่ /etc/skel/
-s คือให้ใช้เชลล์คือ /bin/bash ) - ทำที่เครื่อง mirror.example.com
- ทำการคัดลอก
mirror:# rsync -avz -e ssh someuser@server1.example.com:/var/www/ /var/www/ <<<--- ใส่ค่า password ของ someuser
rsync จะคัดลอกไฟล์ทั้งหมดใน /var/www ที่ someuser มีสิทธิในการอ่านทั้งหมดมาที่ /var/www ของเครื่อง mirror
หมายเหตุ
ตรวจสอบเนื้อที่การใช้ไฟล์ด้วยคำสั่ง
# cd /var/www # du -c | grep total
ทดสอบกับ debian etch













Re: ทำ Mirror ด้วย rsync แบบง่าย
คิดว่าการกำหนด RSYNC_ENABLE=true อาจไม่จำเป็นครับ ถ้าเราไม่ได้ต้องการรับ rsync ผ่านทางอื่นที่ไม่ใช่ ssh (เช่น anonymous rsync)
แล้วก็ rsync รุ่นใหม่ ๆ จะใช้ ssh โดยปริยายอยู่แล้ว จะใส่ -e ssh หรือไม่ก็ได้
ก็เลยอาจจะเหลือแค่นี้:
Re: ทำ Mirror ด้วย rsync แบบง่าย
ขอบคุณครับ :)
Re: ทำ Mirror ด้วย rsync แบบง่าย
สงสัยจะมีบั๊กเกี่ยวกับโมดูลหรือธีมนะครับ ทำให้แท็ก <strong> ปิดไม่หมด
โพสต์นี้ผมเลยปิดแท็กให้ครับ ถ้าแก้แล้วฝากลบให้ด้วยครับ
Re: ทำ Mirror ด้วย rsync แบบง่าย
อยากตั้งให้มัน sync แบบไม่ถาม password อ่ะครับ ต้องทำยังไงบ้างครับ ?
Re: ทำ Mirror ด้วย rsync แบบง่าย
อยากตั้งให้มัน sync แบบไม่ถาม password อ่ะครับ ต้องทำยังไงบ้างครับ ?
Re: ทำ Mirror ด้วย rsync แบบง่าย
ใช้ความสามารถจาก ssh ครับ ดูเรื่อง ssh แบบไม่ต้องถามรหัสผ่าน
สรุปคำสั่งที่ใช้ที่เครื่องลูกข่าย (ใช้ครั้งแรกครั้งเดียว) คือ
พอส่วน ssh เรียบร้อยแล้ว ครั้งต่อไป ไม่ว่าเราจะใช้คำสั่ง ssh หรือ rsync เขาจะไม่ถามรหัสผ่านอีกแล้วครับ
ตัวอย่างคำสั่ง rsync
สมมุติจะ sync ไฟล์จาก
server1:/SOURCEมายังเครื่องเราที่/DESTINATIONโดยใช้โหมด archive (-aคือถ้าไฟล์ไม่เปลี่ยนแปลงจะไม่คัดลอกซ้ำ) quiet (-qไม่แจ้งผล) และลบไฟล์ที่ปลายทางด้วยถ้าไฟล์ต้นทางถูกลบไปแล้ว (--delete) คำสั่งคือPost new comment