一、背景vim
1) 一個做爲服務器端:VM3(IP: 3.9.8.151)安全
2) 一個做爲客戶端:VM2(IP: 3.9.8.157)服務器
3) 服務器端和客戶端網絡可以互相ping通網絡
4) 服務器端和客戶端都已安裝 rsync併發
要求:將VM3的/root/backup/目錄下的全部文件 複製到 VM2 的/root/test/目錄下。tcp
二、操做測試
1) 用ping命令檢測服務器端和客戶端的網絡互通性ui
VM3 ping VM2 成功spa
VM2 ping VM3 成功.net
VM2 和 VM3 網絡互通
2) 服務端VM3新建並修改rsync配置文件
# vim /etc/rsyncd.conf
Uid = nobody
Gid = nobody
Use chroot = no
Max connections = 4
Pid file = /var/run/rsyncd.pid
Lock file = /var/run/rsyncd.lock
Log file = /var/log/rsyncd.log
[cms]
Path = /root/backup
Read only = true
List = false
Auth users = root
Secrets file = /etc/rsyncd.secrets
該文件是由一個或多個模塊結構組成。一個模塊定義以方括弧中的模塊名開始,直到下一個模塊定義開始或者文件結束,模塊中包含格式爲name = value的參數定義。每一個模塊其實就對應須要備份的一個目錄樹。
全局參數
Uid: 該選項指定當該模塊傳輸文件時守護進程應該具備的uid,配合gid選項使用能夠肯定哪些能夠訪問怎麼樣的文件權限,默認值是"nobody"。
Gid: 該選項指定當該模塊傳輸文件時守護進程應該具備的gid。默認值爲"nobody"。
Use chroot: 若是"use chroot"指定爲true,那麼rsync在傳輸文件之前首先chroot到path參數所指定的目錄下。這樣作的緣由是實現額外的安全防禦,可是缺點是須要以roots權限,而且不能備份指向外部的符號鏈接所指向的目錄文件。默認狀況下chroot值爲true。
Max connection: 指定該模塊的最大併發鏈接數量以保護服務器,超過限制的鏈接請求將被告知隨後再試。默認值是0,也就是沒有限制。
pid file:指定rsync的pid文件。
Lock file: 指定支持max connections參數的鎖文件,默認值是/var/run/rsyncd.lock
log file: 指定rsync的日誌文件,而不將日誌發送給syslog。
模塊參數
Cms: 模塊名,名字能夠隨意取,以後的客戶端rsync命令將調用這個名字。
path: 指定該模塊的供備份的目錄樹路徑,該參數是必須指定的.
Read only: 該選項設定是否容許客戶上載文件。若是爲true那麼任何上載請求都會失敗,若是爲false而且服務器目錄讀寫權限容許那麼上載是容許的。默認值爲true。
List: 該選項設定當客戶請求能夠使用的模塊列表時,該模塊是否應該被列出。若是設置該選項爲false,能夠建立隱藏的模塊。默認值是true。
Auth users:該選項指定由空格或逗號分隔的用戶名列表,只有這些用戶才容許鏈接該模塊。這裏的用戶和系統用戶沒有任何關係。若是"auth users"被設置,那麼客戶端發出對該模塊的鏈接請求之後會被rsync請求challenged進行驗證身份這裏使用的challenge/response認證協議。用戶的名和密碼以明文方式存放在"secrets file"選項指定的文件中。默認狀況下無需密碼就能夠鏈接模塊(也就是匿名方式)。
Secrets file: 該選項指定一個包含定義用戶名:密碼對的文件。只有在"auth users"被定義時,該文件纔有做用。文件每行包含一個username:passwd對。通常來講密碼最好不要超過8個字符。沒有默認的secures file名,須要限式指定一個。(例如:/etc/rsyncd.secrets)
以上參照:http://blog.csdn.net/xujingzhong0077/article/details/51993514
注意:設置後要測試配置的目錄是否存在,如要確認/var/run/目錄,/var/log/目錄,/root/backup/目錄。/etc/rsyncd.secrets將會在下一步配置
3) 服務端VM3新建並修改rsync配置文件
# vim /etc/rsyncd.secrets
Root:redhat
以 用戶名:密碼 的格式。這個是服務器端的認證用戶名密碼。
4) 服務端VM3 修改/etc/rsyncd.secrets權限,只能是root用戶可讀寫
# chmod 600 /etc/rsyncd.secrets
5) 服務端VM3 以daemon方式啓動rsync
# rsync –daemon
6) 服務端VM3檢查端口,以及服務
# ps –ef | grep rsync
檢查服務是否以daemon方式啓動,若不是,kill掉進程,從新以daemon方式啓動
# netstat –ntlp
檢查服務啓動後,是否有監聽873端口,端口873是rsync的默認端口。
# service iptables stop
關閉防火牆
或者
# vim /etc/sysconfig/iptables
添加
-A INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT
容許873端口經過防火牆
# service iptables restart
重啓防火牆
查看/etc/rsyncd.secrets 文件權限是否是隻用root用戶可讀寫
以上配置及檢查完畢,則服務端就能夠了,等待客戶端鏈接,拷貝文件。
7) 客戶端VM2 配置密碼文件
# vim /etc/rsync.pass
Redhat
8) 客戶端VM2 密碼文件/etc/rsync.pass,修改權限,只能是root用戶可讀寫
# chmod 600 /etc/rsync.pass
9) 客戶端VM2 用命令鏈接服務端拷貝文件
# rsync –arvz –P root@3.9.8.151::cms /root/test/ --password-file=/etc/rsync.pass