1、背景 1) 一個作為伺服器端:VM3(IP: 3.9.8.151) 2) 一個作為客戶端:VM2(IP: 3.9.8.157) 3) 伺服器端和客戶端網路能夠互相ping通 4) 伺服器端和客戶端都已安裝 rsync 要求:將VM3的/root/backup/目錄下的所有文件 複製到 VM2 的 ...
1、背景
1) 一個作為伺服器端:VM3(IP: 3.9.8.151)
2) 一個作為客戶端:VM2(IP: 3.9.8.157)
3) 伺服器端和客戶端網路能夠互相ping通
4) 伺服器端和客戶端都已安裝 rsync
要求:將VM3的/root/backup/目錄下的所有文件 複製到 VM2 的/root/test/目錄下。
2、操作
1) 用ping命令檢測伺服器端和客戶端的網路互通性
VM3 ping VM2 成功
VM2 ping VM3 成功
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 [email protected]::cms /root/test/ --password-file=/etc/rsync.pass