歡迎您光臨本站 註冊首頁

使用Rsync進行伺服器的備份

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

使用Rsync進行伺服器的備份

一、環境:

OS: Centos5 /RHEL 5

Soft: rsync-3.0.7.tar.gz

Rsync是linux下的數據備份工具,支持linux—linux, linux—windows之間的互相備份.具有如下特性:

1、 可以鏡像保存整個目錄樹和文件系統

2、 可以很容易的做到保存原文件的許可權、時間、軟硬鏈接等

3、 無須特殊許可權即可安裝

4、 優化的流程、文件傳輸效率高

5、 可以使用rcp、ssh等方式進行傳輸,也可以直接通過sock連接

二、安裝

下載地址: http://rsync.samba.org .

安裝和一般的軟體基本一樣,一般rhel5或centos已經安裝好了,我們可以先卸載后再自行安裝

Rpm –e rsync --nodeps

#tar -xzvf rsync-3.0.7.tar.gz

#cd rsync-3.0.7

#./configure –prefix=/usr/local/rsync

#make

#make install

註: 如果在兩台linux之間備份,這兩台linux都安裝rsync,分別配置為server和client,但是如果是linux和windows之間備份,則linux安裝rsync,windows系統安裝cwrsync.

三、配置rsync伺服器端

Rsync伺服器的配置文件為/etc/rsyncd.conf,其控制認證、訪問、日誌記錄等.該文件是一個或多個模塊結構組成,寫法非常類似samba的語法.一個模塊以方括弧中的模塊名開始,知道下一個模塊定義開始或文件結束,模塊中包含name=value的參數定義.每個模塊其實就對應需要備份的一個目錄樹,那麼就需要在配置文件中定義三個模塊,分別對應三個目錄樹.

1、 配置rsync server

Vim /etc/xinetd.d/rsync

將disable=yes改為no

2、 假設我們要備份的目錄是/usr/local/www/ 目錄,那麼我們的配置文件如下:

注意: 配置文件為/etc/rsyncd.conf,默認是不存在的,需要我們自己來建立.

註釋:

全局參數
uid = root//運行RSYNC守護進程的用戶
gid = root//運行RSYNC守護進程的組
use chroot = 0 //不使用chroot
max connections = 0 // 最大連接數,0為不限制
port = 873//默認埠873

下面這些文件是安裝完RSYNC服務后自動生成的文件
pid file = /var/run/rsyncd.pid//pid文件的存放位置
lock file = /var/run/rsync.lock //鎖文件的存放位置.指定支持max connections參數的鎖文件,默認值是/var/run/rsyncd.lock.
log file = /var/log/rsyncd.log//日誌記錄文件的存放位置

Timeout = 300

通過該選項可以覆蓋客戶指定的IP超時時間.通過該選項可以確保rsync伺服器不會永遠等待一個崩潰的客戶端.超時單位為秒鐘,0表示沒有超時定義,這也是默認值.對於匿名rsync伺服器來說,一個理想的數字是600.

Log format = %t %a %m %f %b

通過該選項用戶在使用transfer logging可以自己定製日誌文件的欄位.其格式是一個包含格式定義符的字元串,可以使用的格式定義符如下所示:

%h 遠程主機名

%a 遠程IP地址

%l 文件長度字元數

%p 該次rsync會話的進程id

%o 操作類型:" send" 或" recv"

%f 文件名

%P 模塊路徑

%m 模塊名

%t 當前時間

%u 認證的用戶名(匿名時是null)

%b 實際傳輸的位元組數

%c 當發送文件時,該欄位記錄該文件的校驗碼

默認log格式為:" %o %h [%a] %m (%u) %f %l" ,一般來說,在每行的頭上會添加" %t [%p] " .在源代碼中同時發布有一個叫rsyncstats的perl腳本程序來統計這種格式的日誌文件.

#transfer logging = yes //

使rsync伺服器使用ftp格式的文件來記錄下載和上載操作在自己單獨的日誌中.

syslog facility = local3 //指定rsync發送日誌消息給syslog時的消息級別,常見的消息級別是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7.默認值是daemon.

模塊參數
[www] //這裡是認證的模塊名,在client端需要指定
path = /home/backup///需要做鏡像的目錄,不可缺少!
comment = This is a test //這個模塊的註釋信息
ignore errors//可以忽略一些無關的IO錯誤
read only = yes//該選項設定是否允許客戶上載文件.如果為true那麼任何上載請求都會失敗,如果為false並且伺服器目錄讀寫許可權允許那麼上載是允許的.默認值為true.
list = no //不允許列文件
auth users =msyn //認證的用戶名,如果沒有這行則表明是匿名,此用戶與系統無關

該選項指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊.這裡的用戶和系統用戶沒有任何關係.如果" auth users" 被設置,那麼客戶端發出對該模塊的連接請求以後會被rsync請求challenged進行驗證身份這裡使用的challenge/response認證協議.用戶的名和密碼以明文方式存放在" secrets file" 選項指定的文件中.默認情況下無需密碼就可以連接模塊(也就是匿名方式).
secrets file = /etc/rsync.pas //密碼和用戶名對比表,密碼文件自己生成

該選項指定一個包含定義用戶名:密碼對的文件.只有在" auth users" 被定義時,該文件才有作用.文件每行包含一個username:passwd對.一般來說密碼最好不要超過8個字元.沒有默認的secures file名,需要限式指定一個(例如:/etc/rsyncd.passwd).注意:該文件的許可權一定要是600,否則客戶端將不能連接伺服器.


hosts allow = 192.168.1.1,10.10.10.10//允許主機或網段

該選項指定哪些IP的客戶允許連接該模塊.客戶模式定義可以是以下形式:

單個IP地址,例如:192.167.0.1

整個網段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0

多個IP或網段需要用空格隔開,“*”則表示所有,默認是允許所有主機連接.

hosts deny = 0.0.0.0/0 //禁止主機

3、 建立認證文件/etc/rsyncd.ps ,此文件須與配置文件中指定文件名保持一致

#vim /etc/rsyncd.ps

此處格式為:username:password,由於安全問題,並不建議實際使用中使用root用戶

並且我們需要設置此文件的許可權為600,

4、建立motd文件(可有可無)

# vi /var/rsyncd.motd
rsyncd.motd記錄了rsync服務的歡迎信息,你可以在其中輸入任何文本信息,如:
Welcome to use the rsync services!

5、啟動rysnc

四、客戶端安裝

備份伺服器只要安裝rsync就可以了,不需要啟動進程就可以了.下面為同步過程:

格式:

#rsync –vzrtopg –delete --progress username@IP::要備份的目錄 目錄2

--delete 是保持跟伺服器的目錄完全一致

--progress

要備份的目錄:指的是配置文件中的備份模塊名

目錄2:客戶端的用來保持備份文件的目錄

如果要上傳的話,只需要將位置顛倒即可,如:

/usr/local/rsync/bin/rsync -vzrtopg --delete --progress /root/backup root@128.1.30.150::www

五、windows客戶端

下載cwRsyncServer_4.0.6_Installer.zip,在客戶端機器安裝,在計算機管理中啟動服務.

1、 建立密碼文件,我放在了c:rsyncd.ps

2、 進入dos,參考以下:

3、 可以寫一個批處理文件,然後使用計劃任務定期執行


[火星人 ] 使用Rsync進行伺服器的備份已經有899次圍觀

http://coctec.com/docs/linux/show-post-49278.html