centos下配置rsyncd服務器

不知道什麼是rsync,請查看 rsyncshell

首先,檢查rsync是否安裝,若是沒有須要手動安裝
#檢查是否安裝過rsync,或者使用命令  rpm -qa|grep rsync 也能夠

whereis rsync
#若是結果相似下面這張狀況,則已經安裝
# rsync: /usr/bin/rsync /usr/share/man/man1/rsync.1.gz
#若是結果是,那麼說明當前服務器尚未安裝過rsync
# rsync:

#使用yum安裝rsync

yum install rsync
建立rsyncd服務的配置文件

默認安裝後,在/etc目錄下,並不存在rsyncd目錄,須要手動建立配置文件目錄安全

makdir /etc/rsyncd

在/etc/rsyncd目錄下建立以下文件服務器

touch /etc/rsyncd/rsyncd.conf          #主配置文件
touch /etc/rsyncd/rsyncd.secrets       #用戶名密碼文件,一組用戶一行,用戶名和密碼使用 : 分割
touch /etc/rsyncd/rsyncd.motd          #非必須,鏈接上rsyncd顯示的歡迎信息,此文件可不建立

必須注意的是,rsyncd服務的密碼文件權限必須是600tcp

chmod 0600 /etc/rsyncd/rsyncd.secrets
編輯主配置文件 rsyncd.conf
######################################################################################################
#                      ******進程相關全局配置******
######################################################################################################
# = 後面的值可根據本身的實際狀況更改
#    pid file 守護進程pid文件
#    port 守護進程監聽端口,可更改,由xinetd容許rsyncd時忽略此參數
#    address 守護進程監聽ip,由xinetd容許rsyncd時忽略此參數
pid file = /usr/local/var/run/rsyncd.pid
port = 873
address = 192.168.1.2
#rsyncd 守護進程運行系統用戶全局配置,也可在具體的塊中獨立配置,
uid = root
gid = root
#容許 chroot,提高安全性,客戶端鏈接模塊,首先chroot到模塊path參數指定的目錄下
#chroot爲yes時必須使用root權限,且不能備份path路徑外的連接文件
use chroot = yes
#只讀
read only = no
#只寫
write only = no
#容許訪問rsyncd服務的ip,ip端或者單獨ip之間使用空格隔開
hosts allow = 192.168.0.1/255.255.255.0 198.162.145.1 10.0.1.0/255.255.255.0
#不容許訪問rsyncd服務的ip,*是所有(不涵蓋在hosts allow中聲明的ip,注意和hosts allow的前後順序)
hosts deny = *
#客戶端最大鏈接數
max connections = 5
#歡迎文件路徑,可選的
#motd file = /etc/rsyncd/rsyncd.motd
#日誌相關
#    log file 指定rsync發送消息日誌文件,而不是發送給syslog,若是不填這個參數默認發送給syslog
#    transfer logging 是否記錄傳輸文件日誌
#    log format 日誌文件格式,格式參數請google
#    syslog facility rsync發送消息給syslog時的消息級別,
#    timeout鏈接超時時間
log file = /usr/local/logs/rsyncd.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

######################################################################################################
#                      ******模塊配置(多個)******
######################################################################################################
#模塊 模塊名稱必須使用[]環繞,好比要訪問data1,則地址應該是data1user@192.168.1.2::data1
[data1]
#模塊根目錄,必須指定
path=/home/username
#是否容許列出模塊裏的內容
list=yes
#忽略錯誤
#ignore errors
#模塊驗證用戶名稱,可以使用空格或者逗號隔開多個用戶名
auth users = data1user
#模塊驗證密碼文件 可放在全局配置裏
secrets file=/etc/rsyncd/rsyncd.secrets
#註釋
comment = some description about this moudle
#排除目錄,多個之間使用空格隔開
exclude = test1/ test2/

能夠直接copy上述內容,做爲本身rsyncd服務的配置模板ui

啓動rsyncd服務
  • rsyncd 服務負載比較高的時候,設定rsyncd爲獨立的守護進程
#默認配置文件是/etc/rsyncd.conf,因此須要顯式的指定配置文件
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
#假設使用putty,xshell終端操做,保證終端斷開進程仍然執行
nohup /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

爲了保證開機時自動啓動,須要手動加上面的命令(/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf)加入 /etc/rc.local 文件中
若是服務器開啓了防火牆,必須保證端口能穿過防火牆this

iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT

端口號修改成實際端口號便可google

  • rsyncd 使用xinetd運行
    xinetd的rsync配置文件是/etc/xinetd.d/rsync
    須要編輯此文件修改一個參數,顯式的指定rsyncd服務的配置文件
server_args     = --daemon --config=/etc/rsyncd/rsyncd.conf

注意系統若是沒有安裝xinetd,須要 yum intall xinetdrest

chkconfig rsync on
service xinetd restart
使用rsync傳輸數據

示例1:日誌

rsync -avzP data1user@192.168.1.2::data1 ~/data1

保持傳輸原有文件權限,用戶,用戶組,時間,遞歸的把data1模塊數據複製到用戶家目錄的data1目錄裏,
參數 a的意思就是 保留文件原有權限,用戶,用戶組,時間且遞歸的copy包括連接文件,塊設備在內的全部文件,這個參數很經常使用
參數 v是顯示傳輸信息
參數 P顯示傳輸進度
參數 z是壓縮傳輸內容進行傳輸code

假設要保持data1模塊和用戶家目錄模塊內容徹底一致,加上參數 --delete,這樣會刪除在~/data1目錄裏可是不在data1模塊裏的文件(夾)

rsync -avzP --delete data1user@192.168.1.2::data1 ~/data1

示例2:

rsync -avzP --delete --password-file=/~/rsync/data1.secrets data1user@192.168.1.2::data1 ~/data1

傳輸時自動使用密碼文件而不用手動輸入,注意密碼文件權限必須是600

文中若有疏漏不當之處請指正。

相關文章
相關標籤/搜索