新聞中心
rsync全稱remote sync,是一種更高效、可以本地或遠(yuǎn)程同步的命令,之所以高效是因?yàn)閞sync會(huì)對(duì)需要同步的源和目的進(jìn)度行對(duì)比,只同步有改變的部分,所以比scp命令更高效,但是rsync本身是一種非加密的傳輸,可以借助-e選項(xiàng)來設(shè)置具備加密功能的承載工具進(jìn)行加密傳輸,下面為大家分享一下搭建rsync服務(wù)器具體步驟。

img
系統(tǒng)環(huán)境
系統(tǒng)平臺(tái):CentOS 6
rsync 版本:rsync-3.0.9-2.el6.rfx.x86_64.rpm
rsync 服務(wù)器:TS-DEV (172.16.1.135)
rsync 客戶端:TS-CLIENT (172.16.1.136)
服務(wù)器端安裝rsync服務(wù)
檢查rsync 是否已經(jīng)安裝
# rpm -qa|grep rsync
下載RPM包
# wget http://pkgs.repoforge.org/rsync/rsync-3.0.9-2.el6.rfx.x86_64.rpm
安裝rsync
# rpm -ivh rsync-3.0.9-2.el6.rfx.x86_64.rpm
配置 rsync 服務(wù)
配置 rsync 服務(wù)器的步驟
?首先要選擇服務(wù)器啟動(dòng)方式 ?對(duì)于負(fù)荷較重的 rsync 服務(wù)器應(yīng)該使用獨(dú)立運(yùn)行方式 ?對(duì)于負(fù)荷較輕的 rsync 服務(wù)器可以使用 xinetd 運(yùn)行方式 ?創(chuàng)建配置文件 rsyncd.conf ?對(duì)于非匿名訪問的 rsync 服務(wù)器還要?jiǎng)?chuàng)建認(rèn)證口令文件
以 xinetd 運(yùn)行 rsync 服務(wù)
CentOS 默認(rèn)以 xinetd 方式運(yùn)行 rsync 服務(wù)。rsync 的 xinetd 配置文件在 /etc/xinetd.d/rsync。要配置以 xinetd 運(yùn)行的 rsync 服務(wù)需要執(zhí)行如下的命令:
# chkconfig rsync on
# service xinetd restart
獨(dú)立運(yùn)行 rsync 服務(wù)
最簡(jiǎn)單的獨(dú)立運(yùn)行 rsync 服務(wù)的方法是執(zhí)行如下的命令:
# /usr/bin/rsync --daemon
您可以將上面的命令寫入 /etc/rc.local 文件以便在每次啟動(dòng)服務(wù)器時(shí)運(yùn)行 rsync 服務(wù)。
配置文件rsyncd.conf
兩種 rsync 服務(wù)運(yùn)行方式都需要配置 rsyncd.conf,配置文件 rsyncd.conf 默認(rèn)在 /etc 目錄下,為了將所有與 rsync 服務(wù)相關(guān)的文件放在單獨(dú)的目錄下,可以執(zhí)行如下命令:
# mkdir /etc/rsyncd
# touch /etc/rsyncd/rsyncd.conf
# ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
配置文件 rsyncd.conf 由全局配置和若干模塊配置組成。配置文件的語法為: ?模塊以 [模塊名] 開始 ?參數(shù)配置行的格式是 name = value ,其中 value 可以有兩種數(shù)據(jù)類型: ?字符串(可以不用引號(hào)定界字符串) ?布爾值(1/0 或 yes/no 或 true/false) ?以 # 或 ; 開始的行為注釋 ?\ 為續(xù)行符
全局參數(shù)
在文件中 [module] 之外的所有配置行都是全局參數(shù)。當(dāng)然也可以在全局參數(shù)部分定義模塊參數(shù),這時(shí)該參數(shù)的值就是所有模塊的默認(rèn)值。
CentOS6 下rsync服務(wù)器配置CentOS6 下rsync服務(wù)器配置
模塊參數(shù)
模塊參數(shù)主要用于定義 rsync 服務(wù)器哪個(gè)目錄要被同步。模塊聲明的格式必須為 [module] 形式,這個(gè)名字就是在 rsync 客戶端看到的名字,類似于 Samba 服務(wù)器提供的共享名。而服務(wù)器真正同步的數(shù)據(jù)是通過 path 來指定的??梢愿鶕?jù)自己的需要,來指定多個(gè)模塊,模塊中可以定義以下參數(shù):
a. 基本模塊參數(shù)
CentOS6 下rsync服務(wù)器配置CentOS6 下rsync服務(wù)器配置
b. 模塊控制參數(shù)
c. 模塊文件篩選參數(shù)
CentOS6 下rsync服務(wù)器配置CentOS6 下rsync服務(wù)器配置
?一個(gè)模塊只能指定一個(gè)exclude 參數(shù)、一個(gè)include 參數(shù)。 ?結(jié)合 include 和 exclude 可以定義復(fù)雜的exclude/include 規(guī)則 。 ?這幾個(gè)參數(shù)分別與相應(yīng)的rsync 客戶命令選項(xiàng)等價(jià),唯一不同的是它們作用在服務(wù)器端。
d. 模塊用戶認(rèn)證參數(shù)
CentOS6 下rsync服務(wù)器配置CentOS6 下rsync服務(wù)器配置
?rsync 認(rèn)證口令文件的權(quán)限一定是 600,否則客戶端將不能連接服務(wù)器。 ?rsync 認(rèn)證口令文件中每一行指定一個(gè) 用戶名:口令 對(duì),格式為: username:passwd ?一般來說口令最好不要超過8個(gè)字符。若您只配置匿名訪問的 rsync 服務(wù)器,則無需設(shè)置上述參數(shù)。
e. 模塊訪問控制參數(shù)
CentOS6 下rsync服務(wù)器配置CentOS6 下rsync服務(wù)器配置
客戶主機(jī)列表定義可以是以下形式: ?單個(gè)IP地址。例如:192.168.0.1 ?整個(gè)網(wǎng)段。例如:192.168.0.0/24,192.168.0.0/255.255.255.0 ?可解析的單個(gè)主機(jī)名。例如:centos,centos.bsmart.cn ?域內(nèi)的所有主機(jī)。例如:.bsmart.cn ?“”則表示所有。 ?多個(gè)列表項(xiàng)要用空格間隔。
f. 模塊日志參數(shù)
設(shè)置了”log file”參數(shù)時(shí),在日志每行的開始會(huì)添加”%t [%p]“。
可以使用的日志格式定義符如下所示: ?%a – 遠(yuǎn)程IP地址 ?%h – 遠(yuǎn)程主機(jī)名 ?%l – 文件長(zhǎng)度字符數(shù) ?%p – 該次 rsync 會(huì)話的 PID ?%o – 操作類型:”send” 或 “recv” ?%f – 文件名 ?%P – 模塊路徑 ?%m – 模塊名 ?%t – 當(dāng)前時(shí)間 ?%u – 認(rèn)證的用戶名(匿名時(shí)是 null) ?%b – 實(shí)際傳輸?shù)淖止?jié)數(shù) ?%c – 當(dāng)發(fā)送文件時(shí),記錄該文件的校驗(yàn)碼
rsync 服務(wù)器應(yīng)用案例
在服務(wù)器端TS-DEV上配置rsync 服務(wù)
a. 編輯配置文件
# vi /etc/rsyncd/rsyncd.conf
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
# GLOBAL OPTIONS
uid = root
gid = root
use chroot = no
read only = yes
#limit access to private LANs
hosts allow=172.16.0.0/255.255.0.0 192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
hosts deny=*
max connections = 5
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd/rsyncd.secrets
#lock file = /var/run/rsync.lock
motd file = /etc/rsyncd/rsyncd.motd
#This will give you a separate log file
log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
# MODULE OPTIONS
[davidhome]
path = /home/david/
list=yes
ignore errors
auth users = david
comment = David home
exclude = important/
[chinatmp]
path = /tmp/china/
list=no
ignore errors
auth users = china
comment = tmp_china
b. 建立/etc/rsyncd/rsyncd.secrets文件 # vim /etc/rsyncd/rsyncd.secrets
david:asdf #格式 用戶名:口令
china:jk #該用戶不要求是系統(tǒng)用戶
c. 為了密碼的安全性,我們把權(quán)限設(shè)為600
# chown root:root /etc/rsyncd/rsyncd.secrets
# chmod 600 /etc/rsyncd/rsyncd.secrets
d. 建立連接到服務(wù)器的客戶端看到的歡迎信息文件/etc/rsyncd/rsyncd.motd # vim /etc/rsyncd/rsyncd.motd
+++++++++++++++++++++++++++
+ David Camp +
+++++++++++++++++++++++++++
e. 啟動(dòng)rsync
# /etc/init.d/xinetd restart
f. 查看873端口是否起來
# netstat -an | grep 873
如果rsync啟動(dòng)成功的話可以看到873端口已經(jīng)在監(jiān)聽了。 g. 服務(wù)器端文件詳細(xì)
客戶端配置
a. 客戶端安裝rsync
# yum -y install rsync
b. 通過rsync客戶端來同步數(shù)據(jù)
場(chǎng)景一:
在客戶端上面:
# rsync -avzP david@172.16.1.135::davidhome /tmp/david/
Password: 這里要輸入david的密碼,是服務(wù)器端提供的,在前面的例子中,我們用的是 asdf,輸入的密碼并不顯示出來;輸好后就回車;
注: 這個(gè)命令的意思就是說,用david 用戶登錄到服務(wù)器上,把davidhome數(shù)據(jù),同步到本地目錄/tmp/david/上。當(dāng)然本地的目錄是可以你自己定義的,比如 dave也是可以的;當(dāng)你在客戶端上,當(dāng)前操作的目錄下沒有davidhome這個(gè)目錄時(shí),系統(tǒng)會(huì)自動(dòng)為你創(chuàng)建一個(gè);當(dāng)存在davidhome這個(gè)目錄中,你要注意它的寫權(quán)限。
說明: -a 參數(shù),相當(dāng)于-rlptgoD,-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權(quán)限;-t 保持文件原有時(shí)間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當(dāng)于塊設(shè)備文件; -z 傳輸時(shí)壓縮; -P 傳輸進(jìn)度; -v 傳輸時(shí)的進(jìn)度等信息,和-P有點(diǎn)關(guān)系,自己試試??梢钥次臋n;
場(chǎng)景二:
# rsync -avzP --delete david@172.16.1.135::davidhome /tmp/david/
這回我們引入一個(gè) –delete 選項(xiàng),表示客戶端上的數(shù)據(jù)要與服務(wù)器端完全一致,如果 /tmp/david/目錄中有服務(wù)器上不存在的文件,則刪除。最終目的是讓/tmp/david/目錄上的數(shù)據(jù)完全與服務(wù)器上保持一致;用的時(shí)候要小心點(diǎn),最好不要把已經(jīng)有重要數(shù)所據(jù)的目錄,當(dāng)做本地更新目錄,否則會(huì)把你的數(shù)據(jù)全部刪除;
場(chǎng)景三:
# rsync -avzP --delete --password-file=/tmp/rsync.password david@172.16.1.135::davidhome /tmp/david/
這次我們加了一個(gè)選項(xiàng) –password-file=rsync.password ,這時(shí)當(dāng)我們以david用戶登錄rsync服務(wù)器同步數(shù)據(jù)時(shí),密碼將讀取 /tmp/rsync.password 這個(gè)文件。這個(gè)文件內(nèi)容只是david用戶的密碼。我們要如下做;
# touch /tmp/rsync.password
# chmod 600 /tmp/rsync.password
# echo "asdf"> /tmp/rsync.password
# rsync -avzP --delete --password-file=/tmp/rsync.password david@172.16.1.135::davidhome /tmp/david/
注: 這樣就不需要密碼了;其實(shí)這是比較重要的,因?yàn)榉?wù)器通過crond 計(jì)劃任務(wù)還是有必要的;
5.3. rsync 客戶端自動(dòng)與服務(wù)器同步數(shù)據(jù)
編輯crontab # crontab -e 加入如下代碼:
10 0 * * * rsync -avzP --delete --password-file=/tmp/rsync.password david@172.16.1.135::davidhome /tmp/david/
表示每天0點(diǎn)10分執(zhí)行后面的命令。
網(wǎng)站欄目:搭建rsync服務(wù)器具體步驟
分享鏈接:http://www.dlmjj.cn/article/coegcps.html


咨詢
建站咨詢
