A+ | A - | RESET
Fixed | Wide | Full | Reset

Gumairu dot Com

If you don't know and wanna know, come and ask us. We will help you still don't know !!

  Advanced search
Welcome, Guest. Please login or register.
February 07, 2012, 12:06:26 PM

Login with username, password and session length
Pages: [1]   Go Down
Author Topic: Backup Data ด้วย Rsync และ Grsync  (Read 1783 times)
0 Members and Guests are viewing this topic.
bobby
Administrator
Full Member
*****
Offline Offline

Posts: 130


View Profile WWW Email
« on: May 04, 2010, 01:09:24 AM »

 Grin มันสุดยอดที่สุดในโลกเลย
rsync ช่วยให้การ backup data เป็นเรื่องง่าย
rsync จะทำงานโดยการ backup จาก เครื่องหลัก(Server) เครื่องbaclup(Client) โดยจะเลือกเฉพาะ file ที่มีการเปลี่ยนแปลงเท่านั้น รวมทั้งpermission ก็จะมาด้วย ทำให้เวลาในการ sync ข้อมูลเร็วเพราะไม่ต้อง copy ทั้งหมดใหม่ในคราวเดียว   ตัว rsync จะ sync data ทั้ง 2 ฝั่งเพื่อให้ไฟล์ที่แตกต่างและทำการ copy
อ่านข้อดีของมันก็มาลองใช้งานกันเลย

ในบทความนี้จะแบ่ง 2 ส่วนนะครับ
1. จะเป็นการ backup จาก FreeBSD to FreeBSD ทั้งแบบ เครื่องนึงไปยังอีกเครื่อง กับแบบ เครื่องเดียวกันคนละ path
2. จะเป็นการ backup จาก Windows to FreeBSD


สำคัญมากสำหรับการ backup ข้ามเครื่อง ให้อ่านวิธีการใช้ ssh Key เพื่อ Login auto โดยไม่ถาม Password โดยอ่านที่
เข้า ssh ไม่ต้องใส่ password โดยใช้ key

เมื่อเข้าใจการใช้ ssh key ก็มาเริ่มหัวข้อแรกนะครับ
การ backup จาก FreeBSD to FreeBSD ไม่ได้ยุ่งยากเลยครับ

ติดตั้ง rsync จาก ports
ในที่นี้จะใช้ rsync เวอร์ชั่น ล่าสุดนะครับ ก็ไปโหลดจาก ports ในเว็บ FreeBSD ครับ

Code:
#cd /usr/ports/net/
#rm -rf rsync
#wget http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/rsync/rsync.tar.gz\?tarball=1
#tar fvxz rsync.tar.gz?tarball=1
#cd rsync
#make install clean

เข้าไปลบ ports rsync เดิมทิ้ง แล้วก็ download ports rsync ล่าสุดมาจาก FreeBSD แล้วก็มาขยายไฟล์
แล้วก็ทำการติดตั้ง rsync เมื่อ make จะมีหน้าต่างขึ้นมา มันจะ select ssh ไว้แล้วก็ผ่านได้เลย (ถ้าใครอยากทำไรเพิ่มเชิญตามสบาย)
เสร็จพร้อมใช้ละ

ขั้นตอนการใช้งาน
-แบบแรก คือ จากpath นึงไปอีก path นึง ในเครื่องเดียวกัน ง่ายๆเลยครับ

Code:
#/usr/local/bin/rsync -avz --delete /home /backup
ทำการ backup "home" ทั้งหมด ไปไว้ใน /backup
ผลที่ได้คือ จะมีการ copy "home" ไปไว้ใน /backup จะเป็น /backup/home

option --delete คือการลบไฟล์หากเมื่อ sync แล้วตัวหลักมีการลบไฟล์ไป ใน backup ก็จะลบด้วย


- อีกแบบ คือ จาก เครื่องนึงไปอีกเครื่องนึง ขั้นตอนนี้จะต้องใช้ ssh key  เข้า ssh ไม่ต้องใส่ password โดยใช้ key

Code:
C$ /usr/local/bin/rsync -avz --delete bobby@Server:/home /backup
C$ = command line บน เครื่อง Client
เครื่อง Server คือเครื่องที่เก็บ Data หลัก เครื่อง Client คือเครื่องที่จะไว้เก็บ Backup
หากไม่ทำ ssh key ไว้พอสั่งอันนี้ระบบจะขึ้นมาถาม ssh password ของ bobby


จาก Windows to FreeBSD
ขั้นตอนนี้สามารถทำสลับกันได้ เหมือน ของ FreeBSD แค่สลับ source กับ dest แต่ผมยังไม่ได้ลองฮา
เอาที่ผมทำนี้คือ Data อยู่บน Windows อยากเอาไป backup ไว้บน FreeBSD
แต่ผมจะสั่งงานบน Windows (Server) เพื่อส่งไฟล์ไป ยัง FreeBSD ผมกลัวว่าถ้าสั่งจากฝั่ง FreeBSD จะติดต่อ ssh เข้ามาบน windows ไม่ได้ (สำหรับ FreeBSD to FreeBSD ผมทำบนเครื่อง Client แล้วสั่งไปดึงไฟล์จาก Server มา)

เราจะใช้ Grsync เป็น GUI rsync สำหรับ Windows โหลดได้จาก Grsync for windows
โหลดแล้วก็ติดตั้งลงไปปกติ

เริ่มใช้งาน เราก็จำเป็นต้องทำ ssh key เหมือนเดิม เราสามารถทำผ่าน Grsync

Code:
C:\Program Files\Grsync\bin>ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/cygdrive/c/Users/bobby/.ssh/id_dsa): [color=red]Enter ผ่านไปเลย[/color]
Enter passphrase (empty for no passphrase): [color=red]Enter ผ่านไปเลย[/color]
Enter same passphrase again: [color=red]Enter ผ่านไปเลย[/color]
Your identification has been saved in /cygdrive/c/Users/bobby/.ssh/id_dsa.
Your public key has been saved in /cygdrive/c/Users/bobby/.ssh/id_dsa.pub.
The key fingerprint is:
a3:c1:81:a7:60:70:50:30:3d:8d:3b:a2:dd:89:56:1c bobby@Server
The key's randomart image is:
+--[ DSA 1024]----+
|==oo             |
|.oE..            |
|...=o            |
|o.o+o.           |
|.o.=o.. S        |
|. + oo .         |
| .  .            |
|                 |
|                 |
+-----------------+

เสร็จเราจะได้ key มาซึ่งอยู่ใน "C:\Users\bobby\.ssh"
เราก็เอา id_dsa.pub มาเปลี่ยนชื่อเป็น authorized_keys แล้ว upload ใส่ไว้ใน FreeBSD /home/bobby/.ssh/

ทดสอบโดย key โดย
Code:
C:\Program Files\Grsync\bin>ssh bobby@Server
มันจะต้องเข้าได้ทันทีเลย แต่ถ้าไม่ได้ตัวใครตัวมัน  Shocked

เสร็จส่วนของ ssh เราก็รัน GUI ของ Grsync ได้เลย
ใช้งานง่ายๆครับเลือก source เลือก dest (อันนี้ก็จะต้องเป็นบนเครื่อง FreeBSD)


จากภาพเราจะกำหนด dest เป็น bobby@Server:/home/bobby/rsync เพื่อให้รู้ว่าปลายทางเป็นเครื่อง FreeBSD

และตรง tab "Advanced options" ให้ใส่ตรง Additional options ว่า
Code:
-e ssh
เพื่อบอกให้ระบบรู้ว่าจะเป็นการติดต่อไปยัง FreeBSD แบบ ssh

แค่นี้ก็ทำงานได้แล้วครับผม


เพิ่มเติม ตัว Grsync ตัวปัจจุบัน 0.63 ไม่มี schedule ให้ใช้งานทำให้เวลา จะ Backup ต้องกดเอง ยุ่งยากครับ เราเลยมาลองแบบ command line จะได้เอาไว้ไปสร้างใน Service ของ Windows ได้ครับ

Code:
C:\Program Files\Grsync\bin>rsync -avrz -e ssh /cygdrive/d/rsync/ bobby@Server:/home/bobby/rsync/
sending incremental file list

sent 188 bytes  received 12 bytes  133.33 bytes/sec
total size is 3762069  speedup is 18810.35

C:\Program Files\Grsync\bin>
เป็นตัวอย่างคำสั่ง โดยระบบจะ backup จาก d:\rsync ไปยัง /home/bobby/rsync ผ่าน ssh ครับ
เมื่อลองแล้วใช้งานได้เรียบร้อย ก็เอา command line ไปสร้าง Service
« Last Edit: May 08, 2010, 09:35:10 AM by bobby » Logged

Pages: [1]   Go Up
Jump to:  

Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC
Corto design by Bloc | XHTML | CSS