溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時間:2021-09-17 17:52:54 來源:億速云 閱讀:124 作者:chen 欄目:系統(tǒng)運維

本篇內(nèi)容主要講解“CentOS6中rsync服務(wù)器的安裝與配置方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“CentOS6中rsync服務(wù)器的安裝與配置方法”吧!

一、rsync 簡介

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

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

  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)然,您也可以寫一個腳本在開機(jī)時自動啟動 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 filersync 的守護(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用一個主機(jī)列表指定哪些主機(jī)客戶允許連接該模塊。不匹配主機(jī)列表的主機(jī)將被拒絕。*
    hosts deny用一個主機(jī)列表指定哪些主機(jī)客戶不允許連接該模塊。

    客戶主機(jī)列表定義可以是以下形式:

    單個IP地址。例如:192.168.0.1整個網(wǎng)段。例如:192.168.0.0/24,192.168.0.0/255.255.255.0可解析的單個主機(jī)名。例如:centos,centos.bsmart.cn域內(nèi)的所有主機(jī)。例如:*.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)程主機(jī)名

  • %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ì)

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

    5.2. 客戶端配置

    a. 客戶端安裝rsync

    # yum -y install rsync

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

    場景一:

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

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

    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/

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

    這回我們引入一個 –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/

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

    這次我們加了一個選項 –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]

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

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

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

    解決辦法:

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

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

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


到此,相信大家對“CentOS6中rsync服務(wù)器的安裝與配置方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI