CentOS 6.5下rsync服務器安裝配置

rsync安裝

bash# 檢查是否安裝過rsync, 若是已經安裝過須要卸載
rpm -qa|grep rsync
# 安裝了rsync 卸載
rpm -e rsync
# 下載最新rpm包(注意操做系統和位數的匹配) 
# rsync的rpm包列表地址:http://pkgs.repoforge.org/rsync
wget http://pkgs.repoforge.org/rsync/rsync-3.1.1-1.el6.rfx.x86_64.rpm
# rpm包安裝
rpm -ivh rsync-3.1.1-1.el6.rfx.x86_64.rpm

rsync服務端配置

啓動配置

  • 選擇rsync服務器啓動方式

    • rsync服務器負載比較高,則使用獨立啓動模式
    • rsync服務器負責較低,使用xinetd運行方式
  • 建立配置文件rsyncd.conf
  • 對於非匿名方式訪問的rsync服務器建立配置口令(建議配置須要口令訪問)

CentOS 默認以xinetd模式運行rsync,rsync的xinetd配置文件是/etc/xinetd.d/rsync
若是配置rsync以xinetd模式運行,執行以下命令centos

bashchkconfig rsync on
service xinetd restart
# 若是執行 service xinetd restart 發現 xinetd: unrecognized service 則未安裝xinetd服務
# 執行 yum install xinetd 安裝 xinetd服務
# 安裝以後啓動 xinetd服務(service xinetd start)

編輯rsync的xinetd配置文件/etc/xinetd.d/rsync文件,修改參數 server_args = --daemon --config=/etc/rsyncd/rsyncd.conf 能夠配置rsync服務器啓動時的參數安全

若是使用獨立運行模式,則執行以下命令bash

bash/usr/bin/rsync --daemon
#編輯 /etc/rc.local文件 加入 /usr/bin/rsync --daemon 保證每次開機啓動都會自動啓動rsync服務

配置文件

bash# 建立rsync服務目錄
mkdir /etc/rsyncd
# 建立配置文件
touch /etc/rsyncd/rsyncd.conf
# 建立密碼文件
touch /etc/rsyncd/rsyncd.passwd
#權限修改
chown root:root /etc/rsyncd/rsyncd.passwd
chmod 600 /etc/rsyncd/rsyncd.passwd

配置文件語法介紹服務器

  • 模塊
    以[模塊名稱]開始
  • 參數配置行
    格式 name = value
    其中 value的值能夠是string(能夠不使用引號)或者boolean(0/1,true/false,yes/no)
  • 以#開始是註釋行
  • 以\是續行符

全局參數([模塊名稱]以外的配置均爲全局配置)併發

  • address
    在獨立運行時,用於指定的服務器運行的 IP 地址。由 xinetd 運行時將忽略此參數,使用命令行上的 –address 選項替代
    默認值 本地全部IP
  • port
    指定 rsync 守護進程監聽的端口號。 由 xinetd 運行時將忽略此參數,使用命令行上的–port 選項替代。
    默認值是 873
  • motd file
    指定一個消息文件,當客戶鏈接服務器時該文件的內容顯示給客戶。
    默認值無
  • pid file
    rsync 的守護進程將其 PID 寫入指定的文件。
    默認值 無
  • log file
    指定 rsync 守護進程的日誌文件,而不將日誌發送給 syslog。
    默認值 無
  • syslog facility
    指定 rsync 發送日誌消息給 syslog 時的消息級別
    默認值 daemon
  • socket options
    指定自定義 TCP 選項。
    默認值無

模塊參數
模塊參數主要用於定義 rsync 服務器哪一個目錄要被同步。模塊聲明的格式必須爲 [module] 形式,這個名字就是在 rsync 客戶端看到的名字,相似於 Samba 服務器提供的共享名。而服務器真正同步的數據是經過 path 來指定的。能夠根據本身的須要,來指定多個模塊,模塊中能夠定義如下參數:socket

  • 基本模塊參數

    • path
      指定當前模塊在 rsync 服務器上的同步路徑,該參數是必須指定的
    • comment
      給模塊指定一個描述,該描述連同模塊名在客戶鏈接獲得模塊列表時顯示給客戶
  • 模塊控制參數ui

    • use chroot
      若爲 true,則 rsync 在傳輸文件以前首先 chroot 到 path 參數所指定的目錄下。這樣作的緣由是實現額外的安全防禦,可是缺點是須要 root 權限,而且不能備份指向 path 外部的符號鏈接所指向的目錄文件。
      默認值true
    • uid
      指定該模塊以指定的 UID 傳輸文件。
      默認值 nobody
    • gid
      指定該模塊以指定的 GID 傳輸文件。
      默認值 nobody
    • max connections
      定該模塊的最大併發鏈接數量以保護服務器,超過限制的鏈接請求將被告知隨後再試。
      默認值 0 不限制
    • read only
      指定是否容許客戶上傳文件。若爲 true 則不容許上傳;若爲 false 而且服務器目錄也具備讀寫權限則容許上傳。
      默認值 true
    • write only
      指定是否容許客戶下載文件。若爲 true 則不容許下載;若爲 false 而且服務器目錄也具備讀權限則容許下載。
      默認值 false
  • 模塊認證參數操作系統

    • hosts allow
      用一個主機列表指定哪些主機客戶容許鏈接該模塊。不匹配主機列表的主機將被拒絕
      默認值 *

    客戶主機列表定義能夠是如下形式:

    單個IP地址 例如:192.168.0.1
    整個網段 例如:192.168.0.0/24,192.168.0.0/255.255.255.0
    可解析的單個主機名 例如:centos,centos.bsmart.cn
    域內的全部主機 例如:.bsmart.cn
    」則表示全部。
    多個列表項要用空格間隔。命令行

    • hosts deny
      用一個主機列表指定哪些主機客戶不容許鏈接該模塊。
      默認值 空
    • auth users
      指定由空格或逗號分隔的用戶名列表,只有這些用戶才容許鏈接該模塊。這裏的用戶和系統用戶沒有任何關係。用戶名和口令以明文方式存放在 secrets file 參數指定的文件中
      默認匿名
    • secrets file
      指定一個 rsync 認證口令文件。只有在 auth users 被定義時,該文件才起做用。
      默認值 空
    • strict modes
      指定是否監測口令文件的權限。若爲 true 則口令文件只能被 rsync 服務器運行身份的用戶訪問,其餘任何用戶不能夠訪問該文件。
      默認值 true
      > - rsync 認證口令文件的權限必定是 600,不然客戶端將不能鏈接服務器。
    • rsync 認證口令文件中每一行指定一個 用戶名:口令 對,格式爲:username:passwd
    • 通常來講口令最好不要超過8個字符。若您只配置匿名訪問的 rsync 服務器,則無需設置上述參數。

配置文件實例rest

bash# 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

密碼文件

shdavid:asdf             #格式   用戶名:口令
china:jk               #該用戶不要求是系統用戶

查看rsync服務是否啓動
netstat -an | grep 873

rsync 客戶端

bash# 安裝客戶端
yum -y install rsync
# 同步命令
# -a 參數,至關於-rlptgoD
#   -r 是遞歸 -l 是連接文件,意思是拷貝連接文件;-p 表示保持文件原有權限
#   -t 保持文件原有時間;-g 保持文#件原有用戶組;-o 保持文件原有屬主;-D 至關於塊設備文件
# -z 傳輸時壓縮;
# -P 傳輸進度;
# -v 傳輸時的進度等信息,和-P有點關係,本身試試。能夠看文檔;
# 同步
rsync -avzP david@172.16.1.135::davidhome  /tmp/david/
# 客戶端數據和服務器端數據保持一致
rsync -avzP  --delete david@172.16.1.135::davidhome  /tmp/david/
# 指定傳輸時候的密碼文件,密碼文件權限 600
rsync -avzP  --delete  --password-file=/tmp/rsync.password  david@172.16.1.135::davidhome  /tmp/david/
相關文章
相關標籤/搜索