man rsyncd.conf
全局參數html
rsyncd.conf參數 | 參數說明 |
---|---|
uid=rsync | 運行rsync守護進程的用戶。 |
gid=rsync | 運行rsync用戶組(用戶所在的組) |
use chroot=no | 若是爲true,daemon會在客戶端傳輸文件前「chroot to the path」。這是一種安全配置,由於咱們大多數都在內網,因此不配也不要緊 |
max connections=200 | 設置最大鏈接數,默認0,意思無限制,負值爲關閉這個模塊 |
strict modes=yes | 是否檢查口令文件的權限 |
port=873 | 默認端口873 |
timeout=400 | 默認爲0,表示no timeout,建議300-600(5-10分鐘) |
pid file | rsync daemon啓動後將其進程pid寫入此文件。若是這個文件存在,rsync不會覆蓋該文件,而是會終止 |
lock file | 指定lock文件用來支持「max connections」參數,使得總鏈接數不會超過限制 |
log file | 不設或者設置錯誤,rsync會使用rsyslog輸出相關日誌信息 |
motd file | 「motd file」參數用來指定一個消息文件,當客戶鏈接服務器時該文件的內容顯示給客戶,默認沒有motd文件 |
模塊參數vim
rsyncd.conf參數 | 參數說明 |
---|---|
ignore errors | 忽略無關的I/O錯誤 |
read only=false | 指定客戶端是否能夠上傳文件,默認對全部模塊爲true |
list=false | 是否容許客戶端能夠查看可用模塊列表,默認爲能夠 |
hosts allow | 指定能夠聯繫的客戶端主機名或和ip地址或地址段,默認狀況沒有此參數,即均可以鏈接 |
hosts deny | 指定不能夠聯繫的客戶端主機名或ip地址或地址段,默認狀況沒有此參數,即均可以鏈接 |
auth users | 指定以空格或逗號分隔的用戶可使用哪些模塊,用戶不須要在本地系統中存在。默認爲全部用戶無密碼訪問 |
secrets file | 指定用戶名和密碼存放的文件,格式;用戶名;密碼,密碼不超過8位 |
[backup] | 這裏就是模塊名稱,需用中括號擴起來,起名稱沒有特殊要求,但最好是有意義的名稱,便於之後維護 |
comment | 模塊註釋信息 |
path | 這個模塊中,daemon使用的文件系統或目錄,目錄的權限要注意和配置文件中的權限一致,不然會遇到讀寫的問題 |
添加環境變量安全
export RSYNC_PASSWORD=vicodona123
測試服務器
[root@mico ~]# export RSYNC_PASSWORD=vicodona123 [root@mico ~]# rsync -azvP /root/practices/tmp/1.txt rsync_backup@47.107.108.121::backup sending incremental file list sent 48 bytes received 20 bytes 136.00 bytes/sec total size is 0 speedup is 0.00
第一步:編寫配置信息建立多模塊網絡
[root@vicodona ~]# vim /etc/rsyncd.conf ...... [micodata] comment = "micodata dir by vicodona" path = /backup/micodata [micobackup] comment = "micobackup dir by vicodona" path = /backup/micobackup
第二步:建立多模塊指定的目錄socket
[root@vicodona xinetd.d]# mkdir /backup/mico{data,backup} -p [root@vicodona xinetd.d]# chown rsync.rsync /backup/mico{data,backup}
第三步:利用rsync客戶端進行測試tcp
[root@mico ~]# rsync -azv /root/practices/tmp/ rsync_backup@47.107.108.121::backup --password-file=/etc/rsync.passwd sending incremental file list ./ 1.txt sent 107 bytes received 46 bytes 306.00 bytes/sec total size is 0 speedup is 0.00
說明測試
rsyncd.conf配置文件中,添加多模塊信息,能夠不用重啓rsync服務,即時生效~
全局變量參數針對全部模塊生效;局部變量參數只針對指定模塊生效
read only參數默認配置爲ture,即爲只讀模式
全局變量發生變化,不用重啓rsync服務;局部變量發生變化,須要重啓rsync服務ui
【說明】不管是全局變量發生變化,仍是局部變量發生變化,都建議重啓rsync服務使配置生效this
第一步:,建立模擬測試環境
[root@mico data]# mkdir {a..d} [root@mico data]# touch {a..d}/{1..3}.txt [root@mico data]# tree . ├── a │ ├── 1.txt │ ├── 2.txt │ └── 3.txt ├── b │ ├── 1.txt │ ├── 2.txt │ └── 3.txt ├── c │ ├── 1.txt │ ├── 2.txt │ └── 3.txt └── d ├── 1.txt ├── 2.txt └── 3.txt 4 directories, 12 files
第二步:利用--exclude 參數測試排除功能
需求:不要a目錄中的3.txt 也不要b、c目錄
[root@mico data]# rsync -avz /root/practices/data/ --exclude=a/3.txt --exclude=b --exclude=c rsync_backup@47.107.108.121::micodata sending incremental file list ./ a/ a/1.txt a/2.txt d/ d/1.txt d/2.txt d/3.txt sent 372 bytes received 134 bytes 1,012.00 bytes/sec total size is 0 speedup is 0.00
精簡方式排除
[root@mico data]# rsync -avz /root/practices/data/ --exclude=a/3.txt --exclude={b,c} rsync_backup@47.107.108.121::micodata sending incremental file list ./ a/ a/1.txt a/2.txt d/ d/1.txt d/2.txt d/3.txt sent 372 bytes received 134 bytes 1,012.00 bytes/sec total size is 0 speedup is 0.00
第一步:建立模擬測試環境
[root@mico data]# mkdir {a..d} [root@mico data]# touch {a..d}/{1..3}.txt
第二步:進行排除
# 將須要排除的文件寫入delete.txt文件 [root@mico data]# vim delete.txt a/1.txt b/2.txt c/3.txt [root@mico data]# rsync -avz /root/practices/data/ --exclude-from=/root/practices/data/delete.txt rsync_backup@47.107.108.121::micodata sending incremental file list ./ delete.txt a/ a/2.txt a/3.txt b/ b/1.txt b/3.txt c/ c/1.txt c/2.txt d/ d/1.txt d/2.txt d/3.txt sent 716 bytes received 241 bytes 638.00 bytes/sec total size is 26 speedup is 0.03
說明:
- 排除文件中,須要利用相對路徑指定排除信息(不能利用絕對路徑)
- 相對路徑指的是相對同步的目錄信息而言,是對rsync -avz /data/ 後面的data目錄進行相對
第一步:編寫修改服務端配置文件
vim /etc/rsyncd.conf [nfsdata] comment = "micodata dir by vicodona" path = /backup/micodata exclude=a/3.txt b c
第二步:重啓rsync服務
[root@vicodona micodata]# systemctl restart rsyncd [root@vicodona micodata]# rsync --daemon
第三步:進行測試
[root@mico data]# rsync -avz /root/practices/data/ rsync_backup@47.107.108.121::micodata sending incremental file list ./ delete.txt ERROR: daemon refused to receive file "a/3.txt" ERROR: daemon refused to receive directory "b" *** Skipping any contents from this failed directory *** ERROR: daemon refused to receive directory "c" *** Skipping any contents from this failed directory *** a/ a/1.txt a/2.txt d/ d/1.txt d/2.txt d/3.txt sent 617 bytes received 435 bytes 701.33 bytes/sec total size is 26 speedup is 0.02 rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
經過客戶端命令建立服務端備份目錄中子目錄
# 推送/root/practices/data/a/delete.txt 文件到服務器 /backup/sda 目錄 [root@mico practices]# rsync -avzP /root/practices/data/delete.txt rsync_backup@47.107.108.121::backup/sda sending incremental file list delete.txt 26 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/1) sent 116 bytes received 43 bytes 318.00 bytes/sec total size is 26 speedup is 0.16
查看同步結果
[root@vicodona backup]# ll sda/ total 4 -rw-r--r-- 1 rsync rsync 26 Jul 15 16:06 delete.txt
說明:
a 目標目錄名稱後要加上 "/", 表示建立目錄,不然變爲修改傳輸文件名稱了
b 利用客戶端建立服務備份子目錄時,只能建立一級子目錄。
第一步:在服務端配置文件,編寫白名單策略或黑名單策略(只能取其一)
[root@vicodona backup]# cat /etc/rsyncd.conf hosts allow = 47.107.108.0/24 # hosts deny = 0.0.0.0/32
關於訪問控制說明:
- 白名單和黑名單同時存在時,默認控制策略爲不匹配的傳輸數據信息所有放行
- 白名單單一存在時,默認控制策略爲不匹配的傳輸數據信息所有禁止
- 黑名單單一存在時,默認控制策略爲不匹配的傳輸數據信息所有放行
第一步: 建實驗環境
[root@mico practices]# ll data/ 總用量 20 drwxr-xr-x 2 root root 4096 7月 15 15:42 a drwxr-xr-x 2 root root 4096 7月 15 15:42 b drwxr-xr-x 2 root root 4096 7月 15 15:42 c drwxr-xr-x 2 root root 4096 7月 15 15:42 d -rw-r--r-- 1 root root 26 7月 15 16:06 delete.txt
第二步:進行第一次數據同步
[root@mico practices]# rsync -avz --delete /root/practices/data/ rsync_backup@47.107.108.121::backup/micodata/ sending incremental file list ./ delete.txt a/ a/1.txt a/2.txt a/3.txt b/ b/1.txt b/2.txt b/3.txt c/ c/1.txt c/2.txt c/3.txt d/ d/1.txt d/2.txt d/3.txt sent 879 bytes received 298 bytes 2,354.00 bytes/sec total size is 26 speedup is 0.02
第三步:刪除指定目錄,並添加指定文件,測試無差別功能
# 刪除客戶端中的 a/ 目錄,再進行無差別傳輸 [root@mico data]# rm -rf a/ [root@mico data]# rsync -avz --delete /root/practices/data/ rsync_backup@47.107.108.121::backup/micodata/ Password: sending incremental file list deleting a/3.txt deleting a/2.txt deleting a/1.txt deleting a/ ./ sent 300 bytes received 69 bytes 82.00 bytes/sec total size is 26 speedup is 0.07
第四步:查看服務端的數據同步狀況
[root@mico data]# ll 總用量 16 drwxr-xr-x 2 root root 4096 7月 15 15:42 b drwxr-xr-x 2 root root 4096 7月 15 15:42 c drwxr-xr-x 2 root root 4096 7月 15 15:42 d -rw-r--r-- 1 root root 26 7月 15 16:06 delete.txt
能夠看見,a目錄下的數據已經同步刪除
實現存儲數據與備份數據徹底一致(慎用)
rsync -avz --delete /data/ rsync_backup@47.107.108.121::backup /
快速刪除大文件數據
1.mkdir /null --建立出一個空目錄。 2.rsync -avz --delete /null/ /bigdata/ # 刪除效率高於 rm -rf /bigdata
第一步:在服務端配置文件中開啓list列表功能
[root@vicodona ~]# vim /etc/rsyncd.conf list = true
第二步:客戶端查看服務端模塊信息
[root@vicodona ~]# systemctl stop rsyncd [root@vicodona ~]# rsync --daemon
第三步:客戶端查看服務端模塊信息
[root@mico data]# rsync rsync_backup@47.107.108.121:: backup "backup dir by vicodona" micodata "micodata dir by vicodona" micobackup "micobackup dir by vicodona"
爲了提高備份服務器安全性,建議關閉list列表功能
@ERROR: chroot failed rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
【緣由】服務器端的目錄不存在或無權限,建立目錄並修正權限可解決問題。
@ERROR: auth failed on module tee rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
【緣由】服務器端該模塊(tee)須要驗證用戶名密碼,但客戶端沒有提供正確的用戶名密碼,認證失敗。
提供正確的用戶名密碼解決此問題。
@ERROR: Unknown module ‘tee_nonexists’ rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
【緣由】服務器不存在指定模塊。提供正確的模塊名或在服務器端修改爲你要的模塊以解決問題。
password file must not be other-accessible continuing without password file Password:
【解決】這是由於rsyncd.pwd rsyncd.secrets的權限不對,應該設置爲600。如:chmod 600 rsyncd.pwd
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]
【解決】對方沒開機、防火牆阻擋、經過的網絡上有防火牆阻擋,都有可能。關閉防火牆,其實就是把tcp udp的873端口打開。
rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]
【解決】/etc/rsyncd.conf配置文件內容有錯誤。請正確覈對配置文件。
rsync: chown "" failed: Invalid argument (22)
【解決】權限沒法複製。去掉同步權限的參數便可。(這種狀況多見於Linux向Windows的時候)
@ERROR: daemon security issue -- contact admin rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
【緣由】
同步的目錄裏面有軟鏈接文件,須要服務器端的/etc/rsyncd.conf打開use chroot = yes。掠過軟鏈接文件。
ERROR: module is read only rsync error: syntax or usage error (code 1) at main.c(747) [receiver=2.6.8] rsync: connection unexpectedly closed (4 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
【解決】 提示打開了read only,將配置文件 read only = no
cat /var/log/rsyncd.log 2011/12/14 11:58:37 [22377] name lookup failed for XX.XX.XX.XX: Name or service not known 2011/12/14 11:58:37 [22377] connect from UNKNOWN (XX.XX.XX.XX) 2011/12/14 11:58:37 [22377] rsync to html/ from unknown (XX.XX.XX.XX)
【解決】須要在服務端這臺機上上的/etc/hosts裏面添加客戶端機的ip和機器名
[root@Dell-R710 ~]# rsync -artuz -R --delete ./ 192.168.1.233::gex rsync: failed to connect to 61.145.118.206: Connection refused (111) rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
【解決】
1、查看防火牆
2、查看服務端是否開啓守護進程
ps ax|grep rsync rsync --daemon --config=/etc/rsyncd.conf
rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/ rsync: could not open password file "/etc/rsync.pas": No such file or directory (2) Password: @ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
【說明】遇到這個問題:client端沒有設置/etc/rsync.pas這個文件,而在使用rsync命令的時候,加了這個參數--
password-file=/etc/rsync.pas
rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/ @ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
【說明】遇到這個問題:client端已經設置/etc/rsync.pas這個文件,裏面也設置了密碼111111,和服務器一致,可是
服務器段設置有錯誤,服務器端應該設置/etc/rsync.pas ,裏面內容root:111111 ,這裏登錄名不可缺乏
rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/ @ERROR: chdir failed rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
【說明】遇到這個問題,是由於服務器端的/home/backup 其中backup這個目錄並無設置,因此提示:chdir failed
rsync: write failed on "/home/backup2010/wensong": No space left on device (28) rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7] rsync: connection unexpectedly closed (2721 bytes received so far) [generator] rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]
【說明】磁盤空間不夠,因此沒法操做。
能夠經過df /home/backup2010 來查看可用空間和已用空間
一、權限問題
相似以下的提示:rsync: opendir "/kexue" (in dtsChannel) failed: Permission denied (13)注意查看同步的目錄權限是否爲755
二、time out
rsync: failed to connect to 203.100.192.66: Connection timed out (110) rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
【說明】檢查服務器的端口netstat –tunlp,遠程telnet測試。
三、服務未啓動
rsync: failed to connect to 10.10.10.170: Connection refused (111) rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
【說明】啓動服務:rsync --daemon --config=/etc/rsyncd.conf
四、磁盤空間滿
rsync: recv_generator: mkdir "/teacherclubBackup/rsync……" failed: No space left on device (28) *** Skipping any contents from this failed directory ***
五、Ctrl+C或者大量文件
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [receiver=3.0.5] rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [generator=3.0.5]
六、xnetid啓動
rsync: read error: Connection reset by peer (104) rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.5]
查看rsync日誌
rsync: unable to open configuration file "/etc/rsyncd.conf": No such file or directory
xnetid查找的配置文件位置默認是/etc下,根據具體狀況建立軟連接。例如:
ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
或者更改指定默認的配置文件路徑,在/etc/xinetd.d/rsync
配置文件中