【服務端配置】
html
系統版本python
# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic
官方文檔:https://rsync.samba.org/documentation.htmlubuntu
安裝(可能系統已自帶)安全
sudo apt install rsync
建立 /etc/rsyncd.conf 文件,添加以下內容:bash
max connections = 5 log file = /var/log/rsync.log lock file = /var/lock/rsyncd.lock timeout = 300 #charset = GB18030 # 某些狀況下避免中文亂碼 [share] # 模塊名 comment = Public Share # path爲須要同步的文件夾路徑 path = /var/test hosts allow = 192.168.0.0/16 hosts deny = * read only = no list = yes uid = root gid = root # 必須和 rsyncd.secrets中的用戶名對應 auth users = walker secrets file = /etc/rsyncd.secrets
關於主機訪問控制,allow 比 deny 優先級高,也就是說 rsync 不關注 allow 和 deny 的順序。若是主機既不在 hosts allow 也不在 hosts deny,則根據默認策略,容許鏈接。官方文檔【hosts allow】一節有詳細描述。
服務器
# 主機容許列表(空格或逗號分隔),高優先級 hosts allow = 【】 # 主機禁止列表(空格或逗號分隔),低優先級 # 建議老是加上一個*來禁止異常的任何鏈接 hosts deny = 【】 # 主機的格式有五種: ip、ip/netmask、ip/n、hostname、通配符hostname
建立 /etc/rsyncd.secrets 文件,添加以下內容:socket
# 配置用戶名和密碼,密碼能夠任意設置 walker:test
修改 rsyncd.secrets 文件權限tcp
sudo chmod 600 /etc/rsyncd.secrets
啓動 rsyncionic
sudo systemctl start rsync
檢查端口,若是端口未被監聽,可嘗試重啓系統ide
# netstat -anop | grep 873 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 929/rsync off (0.00/0/0) tcp6 0 0 :::873 :::* LISTEN 929/rsync off (0.00/0/0)
設置開機啓動
sudo systemctl enable rsync
【客戶端測試】
系統版本(Windows 10 x64 1803)
winver
客戶端軟件版本
cwRsyncServer 4.0.5.0
將服務端文件同步至本地
rsync -cvazu --progress walker@192.168.136.131::share ./test # --iconv=locale_charset,remote_charset 某些狀況下可避免中文亂碼 rsync -cvazu --progress --iconv=UTF-8,GB18030 walker@192.168.136.131::share ./test
若報如下錯誤,查看服務器端口是否開放(檢查防火牆,重啓服務器...)
rsync: failed to connect to 218.107.243.2: No route to host (113) rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
【相關閱讀】
*** walker ***