天天看點

rsync服務實作推送,拉取

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