1、關閉防火牆和selinux
2、服務端和客戶端yum安裝rsync
yum install rsync xinetd
3、客戶端和服務端同時新增配置文件(centos7 默認沒有了)
vim /etc/xinetd.d/rsync
service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
4、 服務端配置修改
#日誌文件位置,啓動rsync後自動產生這個文件,無需提前創建,同步報錯時一般可以在這裏找到原因
log file = /var/log/rsyncd.log
#pid文件的存放位置
pidfile = /var/run/rsyncd.pid
#支持max connections參數的鎖文件
lock file = /var/run/rsync.lock
#用戶認證配置文件,裏面保存用戶名稱和密碼,後面手動創建這個文件
secrets file = /etc/rsync.pass
#rsync啓動時歡迎信息頁面文件位置(自定義)
motd file = /etc/rsyncd.Motd
#自定義名稱
[test]
#rsync服務端數據目錄路徑(自定義)
path = /software/www/
#對該文件夾進行描述
comment =rsync ftp comment
#設置rsync運行權限,推薦使用 nobody
uid = nobody
gid = nobody
#默認端口,客戶端同步時用到服務端該端口
port=873
#默認爲true,修改爲no,增加對目錄文件軟連接的備份
use chroot = no
#設置rsync服務端文件爲讀寫權限
read only = no
#不顯示rsync服務端資源列表
list = no
#最大連接數
max connections = 100
#設置超時時間
timeout = 300
#執行數據同步的用戶名,可以設置多個,用英文狀逗號隔開
auth users = test
#允許進行數據同步的客戶端IP地址,可以設置多個,用英文逗號隔開
hosts allow = 192.168.0.10
#禁止數據同步的客戶端IP地址,可以設置多個或不設,用英文逗號隔開
hosts deny = 192.168.0.12
5、新增同步用戶的配置文件保存密碼,客戶端同步時需要輸入
vim /etc/rsync.pass
# 格式,用戶名:密碼,可以設置多個,每行一個用戶名:密碼
test:112233
6、授權配置文件
chmod 600 /etc/rsync*
7、重啓Rsync生效
systemctl restart xinetd
8、在客戶端開始同步
#追蹤下或者telnet下看服務端的rsync端口網絡策略通了沒
traceroute -T -p 873 192.168.0.3
telnet 192.168.0.3 873
#從服務端同步文件到客戶端
rsync -avz [email protected]::test /data
9、如果有實時同步文件的需求可以用下面2種方法
1、Rsync+Inotify-tools
(1)Inotify-tools只能記錄下被監聽的目錄發生了變化(包括增加、刪除、修改),並沒有把具體是哪個文件或者哪個目錄發生了變化記錄下來;
(2)rsync在同步的時候,並不知道具體是哪個文件或者哪個目錄發生了變化,每次都是對整個目錄進行同步,當數據量很大時,整個目錄同步非常耗時(rsync要對整個目錄遍歷查找對比文件),因此,效率很低。
2、Rsync+sersync
(1):sersync可以記錄下被監聽目錄中發生變化的(包括增加、刪除、修改)具體某一個文件或某一個目錄的名字;
(2):rsync在同步的時候,只同步發生變化的這個文件或者這個目錄(每次發生變化的數據相對整個同步目錄數據來說是很小的,rsync在遍歷查找比對文件時,速度很快),因此,效率很高。
當同步的目錄數據量不大時,建議使用Rsync+Inotify-tools;當數據量很大(幾百G甚至1T以上)、文件很多時,建議使用Rsync+sersync。