環境說明:
本地主機hostA目錄dirA <--- rsync ---> 遠程主機hostB目錄dirB
rsync有兩種工做方式:SSH和daemon。linux
rsync -options <src> <dest>
說明:src:表明源目錄,dest:表明目標目錄,當經過ssh連接時, 請使用rsync -option -e ssh src dest,有時須要指定ssh端口, 請使用這個方式:rsync -options -e "ssh -p 10000" src_dir dest_dir。服務器
將/home/dirA/拷貝到/data/dirA/併發
rsync -avu /dirA/ /home/dirA/
rsync -avu --progress --delete /dirA/ <your_user>@hostB:/dirB/
說明:ssh
rsync -avu --progress --delete <your_user>@hostB:/dirB/ /dirA/
rsync daemon模式是以rsync服務器形式運行,首先咱們須要建立rsync服務器的配置文件,配置文件:/etc/rsyncd.conf 默認此文件可能不存在,須要本身建立,配置信息以下:socket
# Global setting # port = 873 # default # 自定義模塊 [vpser] # 名字 comment = "My rsync test" path = /dirB/ # 用來指定要備份的目錄 uid = <your_user> # default gid = <your_group> # default max connections = 2 # 最大併發鏈接數(本身定義) timeout = 300 use chroot = yes #使用chroot到文件系統中的目錄中 ignore errors # 能夠忽略一些IO錯誤 read only = no # 設置no,客戶端能夠上傳文件,yes是隻讀 write only = no # no爲客戶端能夠下載,yes 不能下載 hosts allow = 192.168.2.0/24 #(可選)容許鏈接的IP,多個IP用逗號隔開 list = yes #(可選)客戶請求時使用模塊列表 auth users = vpser # (可選)鏈接用戶名,是虛擬用戶與linux系統用戶無關,多個用戶名逗號隔開 secrets file = /etc/rsyncd.secrets # (可選)驗證密碼文件,文件格式爲:用戶名:密碼
說明:
/etc/rsyncd.secrets 文件權限必須是600,建立好該文件後能夠執行: chmod 600 /etc/rsyncd.secretside
sudo systemctl start rsyncd sudo systemctl enable rsyncd
rsync -avuP /dirA/ <your_user>@hostB::vpser
注:@前的vpser爲自定義模塊裏設置的用戶名,::後面的vpser爲你自定義模塊的名稱。測試
創建一個空的文件夾: mkdir /root/blank
用rsync刪除目標目錄:rsync --delete-before -a -H -v --progress --stats /root/blank/ /home/wwwroot/cache/ui
配合crontab定時執行任務 code
客戶端的錯誤現象: server
rsync: failed to connect to 172.16.1.41: No route to host (113) rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
緣由:rsync服務端開啓防火牆
異常問題解決:關閉rsync服務端的防火牆服務
sudo firewall-cmd --add-service=rsyncd --permanent sudo firewall-cmd --reload
客戶端的錯誤現象:
ERROR: The remote path must start with a module name not a / rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
異常問題解決:
rsync命令語法理解錯誤,::/backup是錯誤的語法,應該爲::backup(rsync模塊)
客戶端的錯誤現象:
@ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
異常問題解決:
客戶端的錯誤現象:
@ERROR: Unknown module 'backup' rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
異常問題解決:
一、 /etc/rsyncd.conf配置文件模塊名稱書寫錯誤
二、配置文件中網段限制不對
客戶端的錯誤現象:
@ERROR: chdir failed rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
異常問題解決:
客戶端的錯誤現象:
@ERROR: invalid uid rsync rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
異常問題解決:
rsync服務對應rsync虛擬用戶不存在了
客戶端的錯誤現象:
password file must not be other-accessible continuing without password file Password: sending incremental file list sent 26 bytes received 8 bytes 5.23 bytes/sec total size is 349 speedup is 10.26
異常問題解決:rsync客戶端的祕鑰文件也必須是600權限