濮阳杆衣贸易有限公司

主頁 > 知識庫 > CentOS6中rsync服務(wù)器的安裝與配置

CentOS6中rsync服務(wù)器的安裝與配置

熱門標(biāo)簽:洛陽外呼增值業(yè)務(wù)線路解決方案 昆明crm外呼系統(tǒng)價格 臨沂語音電話機器人公司 電銷機器人自動撥號信息 用什么軟件做地圖標(biāo)注 長沙呼叫中心外呼系統(tǒng)穩(wěn)定嗎 騰沖銷售外呼管理系統(tǒng)服務(wù) 400電話申請安裝 北京地圖標(biāo)注平臺注冊入駐

一、rsync 簡介

  Rsync(remote synchronize)是一個遠(yuǎn)程數(shù)據(jù)同步工具,可通過LAN/WAN快速同步多臺主機間的文件,也可以使用 Rsync 同步本地硬盤中的不同目錄。

  Rsync 是用于取代rcp的一個工具,Rsync使用所謂的 “Rsync 算法” 來使本地和遠(yuǎn)程兩個主機之間的文件達(dá)到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當(dāng)快。您可以參考 How Rsync Works A Practical Overview 進(jìn)一步了解 rsync 的運作機制。

  Rsync支持大多數(shù)的類Unix系統(tǒng),無論是Linux、Solaris還是BSD上都經(jīng)過了良好的測試。此外,它在windows平臺下也有相應(yīng)的版本,比較知名的有cwRsync和Sync2NAS。

  Rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,它當(dāng)前由 http://rsync.samba.org維護(hù)。

  Rsync的基本特點如下:

  1. 可以鏡像保存整個目錄樹和文件系統(tǒng);

  2. 可以很容易做到保持原來文件的權(quán)限、時間、軟硬鏈接等;

  3. 無須特殊權(quán)限即可安裝;

  4. 優(yōu)化的流程,文件傳輸效率高;

  5. 可以使用rcp、ssh等方式來傳輸文件,當(dāng)然也可以通過直接的socket連接;

  6. 支持匿名傳輸,以方便進(jìn)行網(wǎng)站鏡像。

  在使用 rsync 進(jìn)行遠(yuǎn)程同步時,可以使用兩種方式:遠(yuǎn)程 Shell 方式(建議使用 ssh,用戶驗證由 ssh 負(fù)責(zé))和 C/S 方式(即客戶連接遠(yuǎn)程 rsync 服務(wù)器,用戶驗證由 rsync 服務(wù)器負(fù)責(zé))。

  無論本地同步目錄還是遠(yuǎn)程同步數(shù)據(jù),首次運行時將會把全部文件拷貝一次,以后再運行時將只拷貝有變化的文件(對于新文件)或文件的變化部分(對于原有文件)。

  rsync 在首次復(fù)制時沒有速度優(yōu)勢,速度不如 tar,因此當(dāng)數(shù)據(jù)量很大時您可以考慮先使用 tar 進(jìn)行首次復(fù)制,然后再使用 rsync 進(jìn)行數(shù)據(jù)同步。

二、系統(tǒng)環(huán)境

系統(tǒng)平臺:CentOS release 6.3 (Final)

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ù)

3.1. 檢查rsync 是否已經(jīng)安裝

# rpm -qa|grep rsync

若已經(jīng)安裝,則使用rpm -e 命令卸載。

3.2. 下載RPM包

# wget http://pkgs.repoforge.org/rsync/rsync-3.0.9-2.el6.rfx.x86_64.rpm

3.3. 安裝rsync

# rpm -ivh rsync-3.0.9-2.el6.rfx.x86_64.rpm

四、配置 rsync 服務(wù)

4.1. 配置 rsync 服務(wù)器的步驟

  • 首先要選擇服務(wù)器啟動方式
  • 對于負(fù)荷較重的 rsync 服務(wù)器應(yīng)該使用獨立運行方式
  • 對于負(fù)荷較輕的 rsync 服務(wù)器可以使用 xinetd 運行方式
  • 創(chuàng)建配置文件 rsyncd.conf
  • 對于非匿名訪問的 rsync 服務(wù)器還要創(chuàng)建認(rèn)證口令文件
  • 4.2. 以 xinetd 運行 rsync 服務(wù)

    CentOS 默認(rèn)以 xinetd 方式運行 rsync 服務(wù)。rsync 的 xinetd 配置文件
    在 /etc/xinetd.d/rsync。要配置以 xinetd 運行的 rsync 服務(wù)需要執(zhí)行如下的命令:

    # chkconfig rsync on# service xinetd restart

    管理員可以修改 /etc/xinetd.d/rsync 配置文件以適合您的需要。例如,您可以修改配置行

    server_args = --daemon

    在后面添加 rsync 的服務(wù)選項。

    4.3. 獨立運行 rsync 服務(wù)

    最簡單的獨立運行 rsync 服務(wù)的方法是執(zhí)行如下的命令:

    # /usr/bin/rsync --daemon

    您可以將上面的命令寫入 /etc/rc.local 文件以便在每次啟動服務(wù)器時運行 rsync 服務(wù)。當(dāng)然,您也可以寫一個腳本在開機時自動啟動 rysnc 服務(wù)。

    4.4. 配置文件 rsyncd.conf

    兩種 rsync 服務(wù)運行方式都需要配置 rsyncd.conf,其格式類似于 samba 的主配置文件。
    配置文件 rsyncd.conf 默認(rèn)在 /etc 目錄下。為了將所有與 rsync 服務(wù)相關(guān)的文件放在單獨的目錄下,可以執(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ù)類型:
  • 字符串(可以不用引號定界字符串)
  • 布爾值(1/0 或 yes/no 或 true/false)
  • 以 # 或 ; 開始的行為注釋
  • \ 為續(xù)行符

    全局參數(shù)

    在文件中 [module] 之外的所有配置行都是全局參數(shù)。當(dāng)然也可以在全局參數(shù)部分定義模塊參數(shù),這時該參數(shù)的值就是所有模塊的默認(rèn)值。

  • 參數(shù) 說明 默認(rèn)值
    address 在獨立運行時,用于指定的服務(wù)器運行的 IP 地址。由 xinetd 運行時將忽略此參數(shù),使用命令行上的 –address 選項替代。 本地所有IP
    port 指定 rsync 守護(hù)進(jìn)程監(jiān)聽的端口號。 由 xinetd 運行時將忽略此參數(shù),使用命令行上的–port 選項替代。 873
    motd file 指定一個消息文件,當(dāng)客戶連接服務(wù)器時該文件的內(nèi)容顯示給客戶。
    pid file rsync 的守護(hù)進(jìn)程將其 PID 寫入指定的文件。
    log file 指定 rsync 守護(hù)進(jìn)程的日志文件,而不將日志發(fā)送給 syslog。
    syslog facility 指定 rsync 發(fā)送日志消息給 syslog 時的消息級別。 daemon
    socket options 指定自定義 TCP 選項。

    模塊參數(shù)

    模塊參數(shù)主要用于定義 rsync 服務(wù)器哪個目錄要被同步。模塊聲明的格式必須為 [module] 形式,這個名字就是在 rsync 客戶端看到的名字,類似于 Samba 服務(wù)器提供的共享名。而服務(wù)器真正同步的數(shù)據(jù)是通過 path 來指定的??梢愿鶕?jù)自己的需要,來指定多個模塊,模塊中可以定義以下參數(shù):

    a. 基本模塊參數(shù)

    參數(shù) 說明 默認(rèn)值
    path 指定當(dāng)前模塊在 rsync 服務(wù)器上的同步路徑,該參數(shù)是必須指定的。
    comment 給模塊指定一個描述,該描述連同模塊名在客戶連接得到模塊列表時顯示給客戶。

    b. 模塊控制參數(shù)

    參數(shù) 說明 默認(rèn)值
    use chroot 若為 true,則 rsync 在傳輸文件之前首先 chroot 到 path 參數(shù)所指定的目錄下。這樣做的原因是實現(xiàn)額外的安全防護(hù),但是缺點是需要 root 權(quán)限,并且不能備份指向 path 外部的符號連接所指向的目錄文件。 true
    uid 指定該模塊以指定的 UID 傳輸文件。 nobody
    gid 指定該模塊以指定的 GID 傳輸文件。 nobody
    max connections 指定該模塊的最大并發(fā)連接數(shù)量以保護(hù)服務(wù)器,超過限制的連接請求將被告知隨后再試。 0(沒有限制)
    lock file 指定支持 max connections 參數(shù)的鎖文件。 /var/run/rsyncd.lock
    list 指定當(dāng)客戶請求列出可以使用的模塊列表時,該模塊是否應(yīng)該被列出。如果設(shè)置該選項為 false,可以創(chuàng)建隱藏的模塊。 true
    read only 指定是否允許客戶上傳文件。若為 true 則不允許上傳;若為 false 并且服務(wù)器目錄也具有讀寫權(quán)限則允許上傳。 true
    write only 指定是否允許客戶下載文件。若為 true 則不允許下載;若為 false 并且服務(wù)器目錄也具有讀權(quán)限則允許下載。 false
    ignore errors 指定在 rsync 服務(wù)器上運行 delete 操作時是否忽略 I/O 錯誤。一般來說 rsync 在出現(xiàn) I/O 錯誤時將將跳過 –delete 操作,以防止因為暫時的資源不足或其它 I/O 錯誤導(dǎo)致的嚴(yán)重問題。 true
    ignore nonreadable 指定 rysnc 服務(wù)器完全忽略那些用戶沒有訪問權(quán)限的文件。這對于在需要備份的目錄中有些不應(yīng)該被備份者獲得的文件時是有意義的。 false
    timeout 該選項可以覆蓋客戶指定的 IP 超時時間。從而確保 rsync 服務(wù)器不會永遠(yuǎn)等待一個崩潰的客戶端。對于匿名 rsync 服務(wù)器來說,理想的數(shù)字是 600(單位為秒)。 0 (未限制)
    dont compress 用來指定那些在傳輸之前不進(jìn)行壓縮處理的文件。該選項可以定義一些不允許客戶對該模塊使用的命令選項列表。必須使用選項全名,而不能是簡稱。當(dāng)發(fā)生拒絕某個選項的情況時,服務(wù)器將報告錯誤信息然后退出。例如,要防止使用壓縮,應(yīng)該是:”dont compress = *”。 *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

    c. 模塊文件篩選參數(shù)

    參數(shù) 說明 默認(rèn)值
    exclude 指定多個由空格隔開的多個文件或目錄(相對路徑),并將其添加到 exclude 列表中。這等同于在客戶端命令中使用 –exclude 來指定模式。
    exclude from 指定一個包含 exclude 規(guī)則定義的文件名,服務(wù)器從該文件中讀取 exclude 列表定義。
    include 指定多個由空格隔開的多個文件或目錄(相對路徑),并將其添加到 include 列表中。這等同于在客戶端命令中使用 –include 來指定模式 。
    include from 指定一個包含 include 規(guī)則定義的文件名,服務(wù)器從該文件中讀取 include 列表定義。
    一個模塊只能指定一個exclude 參數(shù)、一個include 參數(shù)。結(jié)合 include 和 exclude 可以定義復(fù)雜的exclude/include 規(guī)則 。這幾個參數(shù)分別與相應(yīng)的rsync 客戶命令選項等價,唯一不同的是它們作用在服務(wù)器端。關(guān)于如何書寫規(guī)則文件的內(nèi)容請參考http://www.howtocn.org/rsync:use_rsync。

    d. 模塊用戶認(rèn)證參數(shù)

    參數(shù) 說明 默認(rèn)值
    auth users 指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊。這里的用戶和系統(tǒng)用戶沒有任何關(guān)系。用戶名和口令以明文方式存放在 secrets file 參數(shù)指定的文件中。 (匿名方式)
    secrets file 指定一個 rsync 認(rèn)證口令文件。只有在 auth users 被定義時,該文件才起作用。
    strict modes 指定是否監(jiān)測口令文件的權(quán)限。若為 true 則口令文件只能被 rsync 服務(wù)器運行身份的用戶訪問,其他任何用戶不可以訪問該文件。 true
    rsync 認(rèn)證口令文件的權(quán)限一定是 600,否則客戶端將不能連接服務(wù)器。rsync 認(rèn)證口令文件中每一行指定一個 用戶名:口令 對,格式為:

        username:passwd

    一般來說口令最好不要超過8個字符。若您只配置匿名訪問的 rsync 服務(wù)器,則無需設(shè)置上述參數(shù)。

    e. 模塊訪問控制參數(shù)

    參數(shù) 說明 默認(rèn)值
    hosts allow 用一個主機列表指定哪些主機客戶允許連接該模塊。不匹配主機列表的主機將被拒絕。 *
    hosts deny 用一個主機列表指定哪些主機客戶不允許連接該模塊。

    客戶主機列表定義可以是以下形式:

    單個IP地址。例如:192.168.0.1整個網(wǎng)段。例如:192.168.0.0/24,192.168.0.0/255.255.255.0可解析的單個主機名。例如:centos,centos.bsmart.cn域內(nèi)的所有主機。例如:*.bsmart.cn“*”則表示所有。多個列表項要用空格間隔。

    f. 模塊日志參數(shù)

    參數(shù) 說明 默認(rèn)值
    transfer logging 使 rsync 服務(wù)器將傳輸操作記錄到傳輸日志文件。 false
    log format 指定傳輸日志文件的字段。 ”%o %h [%a] %m (%u) %f %l”

    設(shè)置了”log file”參數(shù)時,在日志每行的開始會添加”%t [%p]“。

    可以使用的日志格式定義符如下所示:
  • %a - 遠(yuǎn)程IP地址
  • %h - 遠(yuǎn)程主機名
  • %l - 文件長度字符數(shù)
  • %p - 該次 rsync 會話的 PID
  • %o - 操作類型:”send” 或 “recv”
  • %f - 文件名
  • %P - 模塊路徑
  • %m - 模塊名
  • %t - 當(dāng)前時間
  • %u - 認(rèn)證的用戶名(匿名時是 null)
  • %b - 實際傳輸?shù)淖止?jié)數(shù)
  • %c - 當(dāng)發(fā)送文件時,記錄該文件的校驗碼

    五、rsync 服務(wù)器應(yīng)用案例

    5.1. 在服務(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 OPTIONSuid = root gid = root
    use chroot = no
    read only = yes #limit access to private LANshosts allow=172.16.0.0/255.255.0.0 192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0hosts 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 filelog file = /var/log/rsync.log #This will log every file transferred - up to 85,000+ per user, per synctransfer logging = yes log format = %t %a %m %f %bsyslog facility = local3timeout = 300
    # MODULE OPTIONS[davidhome] path = /home/david/ list=yes ignore errors auth users = david comment = David home exclude = important/ [chinatmp]path = /tmp/china/list=noignore errorsauth users = chinacomment = 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. 啟動rsync

    # /etc/init.d/xinetd restart

    f. 查看873端口是否起來

    # netstat -an | grep 873

    如果rsync啟動成功的話可以看到873端口已經(jīng)在監(jiān)聽了。

    g. 服務(wù)器端文件詳細(xì)

    5.2. 客戶端配置

    a. 客戶端安裝rsync

    # yum -y install rsync

    b. 通過rsync客戶端來同步數(shù)據(jù)

    場景一:

    # rsync -avzP david@172.16.1.135::davidhome /tmp/david/

    Password: 這里要輸入david的密碼,是服務(wù)器端提供的,在前面的例子中,我們用的是 asdf,輸入的密碼并不顯示出來;輸好后就回車;
    注: 這個命令的意思就是說,用david 用戶登錄到服務(wù)器上,把davidhome數(shù)據(jù),同步到本地目錄/tmp/david/上。當(dāng)然本地的目錄是可以你自己定義的,比如 dave也是可以的;當(dāng)你在客戶端上,當(dāng)前操作的目錄下沒有davidhome這個目錄時,系統(tǒng)會自動為你創(chuàng)建一個;當(dāng)存在davidhome這個目錄中,你要注意它的寫權(quán)限。

    說明:
    -a 參數(shù),相當(dāng)于-rlptgoD,-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權(quán)限;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當(dāng)于塊設(shè)備文件;
    -z 傳輸時壓縮;
    -P 傳輸進(jìn)度;
    -v 傳輸時的進(jìn)度等信息,和-P有點關(guān)系,自己試試??梢钥次臋n;

    場景二:
    # rsync -avzP --delete david@172.16.1.135::davidhome /tmp/david/

    這回我們引入一個 –delete 選項,表示客戶端上的數(shù)據(jù)要與服務(wù)器端完全一致,如果 /tmp/david/目錄中有服務(wù)器上不存在的文件,則刪除。最終目的是讓/tmp/david/目錄上的數(shù)據(jù)完全與服務(wù)器上保持一致;用的時候要小心點,最好不要把已經(jīng)有重要數(shù)所據(jù)的目錄,當(dāng)做本地更新目錄,否則會把你的數(shù)據(jù)全部刪除;

    場景三:
    # rsync -avzP --delete --password-file=/tmp/rsync.password david@172.16.1.135::davidhome /tmp/david/

    這次我們加了一個選項 –password-file=rsync.password ,這時當(dāng)我們以david用戶登錄rsync服務(wù)器同步數(shù)據(jù)時,密碼將讀取 /tmp/rsync.password 這個文件。這個文件內(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/

    注: 這樣就不需要密碼了;其實這是比較重要的,因為服務(wù)器通過crond 計劃任務(wù)還是有必要的;

    5.3. rsync 客戶端自動與服務(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點10分執(zhí)行后面的命令。

    六、錯誤分析

    @ERROR: chdir failed
    rsync error: error starting client-server protocol (code 5) at main.c(1530) [receiver=3.0.6]

    rsync: opendir "." (in xxxxxxx) failed: Permission denied (13)

    解決辦法:

    1、將 selinux 對 rsync 的限制全部去掉:
    # /usr/sbin/setsebool -P rsync_disable_trans 1
    # service xinetd restart

    2、狠一點,禁止整個 selinux :
    # vim /etc/selinux/config
    將其中的 SELINUX=enforcing 修改為 SELINUX=disabled
    保存退出后,重啟機器。

    至此,rsync服務(wù)器配置完畢。

    七、參考

    關(guān)于rsync 命令的使用,請參考:http://www.howtocn.org/rsync:use_rsync

    關(guān)于rsync 服務(wù)的詳細(xì)說明,請參考:http://www.howtocn.org/rsync:use_rsync_server

  • 標(biāo)簽:南充 三亞 通化 遼寧 汕頭 涼山 濰坊 昌都

    巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《CentOS6中rsync服務(wù)器的安裝與配置》,本文關(guān)鍵詞  CentOS6,中,rsync,服務(wù)器,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《CentOS6中rsync服務(wù)器的安裝與配置》相關(guān)的同類信息!
  • 本頁收集關(guān)于CentOS6中rsync服務(wù)器的安裝與配置的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    平乐县| 南阳市| 阳泉市| 儋州市| 八宿县| 博白县| 弋阳县| 浦城县| 明水县| 阿瓦提县| 越西县| 合江县| 历史| 汤阴县| 马龙县| 北宁市| 南丰县| 彰化市| 调兵山市| 扶绥县| 房产| 沧州市| 徐州市| 珠海市| 邓州市| 德庆县| 瑞安市| 建阳市| 河源市| 蚌埠市| 凌源市| 定结县| 安龙县| 无棣县| 馆陶县| 博白县| 大安市| 成都市| 海淀区| 潢川县| 天门市|