1.簡介
rsync是一款遠端資料同步工具,一個Rsync server能夠同時備份多個用戶端資料,需要scp,ssh,daemon的支援,預設端口為873。
rsync + crond 可以實作資料定時同步,rsync + inotify可以實作資料的實時同步。
工作中的Rsync服務最好以隻讀方式提供要備份的資料,避免造成誤操作。
2.實驗環境介紹
兩台CentOS6.3 x64 測試機,一台server,一台client。系統已經預設安裝了rsync軟體。
3.Rsync指令格式及指令參數
參數介紹:
-a 歸檔模式,表示以歸檔方式傳輸檔案,并保持所有檔案屬性
-v 詳細模式輸出
-z 對備份的檔案在傳輸時進行壓縮處理
--delete 無差異同步
4.Rsync的三種工作模式
1)本地的拷貝和删除
# rsync avz /etc/hosts /tmp 将檔案hosts拷貝到/tmp目錄中。與cp指令相似,但差別在rsync可以自己比較兩個檔案,實作增量備份
# rsync avz delete /tmp/ /opt/ /tmp/目錄為空,加上 --delete參數,相當于 rm 指令
--delete可以了解為:本地有遠端有,本地沒有删除遠端有的
2)remote shell
rsync遠端"推"和"拉"
(推)# rsync avzP e 'ssh p 22' /tmp/ [email protected]:/tmp/aaa
把本地的 /tmp/ 目錄中的檔案複制到192.168.87.138的 /tmp/aaa 目錄下,通過22端口
(拉)# rsync avzP e 'ssh p 22' [email protected]:/tmp/ /tmp
把192.168.87.138的 /tmp/ 目錄檔案複制到本地的 /tmp 目錄中
# rsync -avzP -e 'ssh -p 22' /tmp/ [email protected]:/tmp
# rsync -avzP -e 'ssh -p 22' [email protected]:/tmp/ /tmp
标紅的斜杠,有這個就是推送指定檔案夾的全部内容,沒有這個就是推送整個目錄
3)daemon (配置Rsync服務端步驟)
首先确認系統中安裝了rsync版本及其版本号
# rsync --version檢視目前rsync版本
# rpm qa rsync
rsync的配置檔案預設不存在,需要手工建立。路徑為 /etc/rsyncd.conf
編輯 /etc/rsyncd.conf 檔案,内容如下。複制粘貼儲存退出即可。
#Rsync server
#yuci
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 192.168.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
###################################
[backup]
comment = www by yuci
path = /backup
建立rsync使用者及共享的目錄 /backup(建立完後檢查一下,養成好習慣)
如上編輯的檔案,secrets file = /etc/rsync.password 為密碼檔案,可以實作兩台機器互信。因為是密碼是以需要更改權限。
rsync_backup 是上面配置檔案的 auth users = rsync_backup "123456"為連接配接時需要驗證的密碼
# rsync --daemon 啟動rsync服務
# netstat lntup | grep rsync 檢視rsync是否正常運作在873端口
# ps ef | grep rsync
# echo "rsync --daemon" >> /etc/rc.local 加入開機自啟動
# cat /etc/rc.local
到此為止,伺服器端的配置已經完成。接下來配置用戶端
# echo "123456" >> /etc/rsync.password
隻需要密碼即可,因為在連接配接指令中已經有了 rsync_backup使用者
# chmod 600 /etc/rsync.password
跟伺服器的密碼檔案相同,需要修改權限
用戶端隻需要這簡單的兩步就可以了。
5.測試環境搭建是否成功
現在要将用戶端的 /tmp/ 目錄中的檔案,推送到服務端的 /backup 目錄中,将 /backup 目錄清空,在 /tmp/ 目錄中随便建立幾個檔案
沒有報錯推送成功,下圖選中的backup是要對應 /etc/rsyncd.conf 中的子產品指令
與上圖的 ::backup 對應
回到伺服器端檢查,測試成功
本文轉自 mlwzby 51CTO部落格,原文連結:http://blog.51cto.com/aby028/1871433