不知道什麼是rsync,請查看 rsync 。shell
#檢查是否安裝過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
默認安裝後,在/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
###################################################################################################### # ******進程相關全局配置****** ###################################################################################################### # = 後面的值可根據本身的實際狀況更改 # 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
#默認配置文件是/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
server_args = --daemon --config=/etc/rsyncd/rsyncd.conf
注意系統若是沒有安裝xinetd,須要 yum intall xinetdrest
chkconfig rsync on service xinetd restart
示例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
文中若有疏漏不當之處請指正。