官方文檔:https://download.samba.org/pub/rsync/rsyncd.conf.html
1:daemon模式配置文件
rsync以daemon方式運行的時候使用配置文件為rsyncd.conf
2:使用daemon模式的時候,一定要分清楚服務端和客戶端,與平時理解的服務端與客戶端不太一樣
被同步的一端為服務端,要把文件同步到另一端的源端為客戶端

3:文件格式
1) rsyncd.conf配置文件由模塊和參數組成,一個模塊以寫在方括號里的模塊名稱開始,直到下一個模塊,模塊里包含由“name = value”格式的參數。
2)文件是基於行的,每一行代表一個模塊名或者參數
4:啟動方式
daemon模式運行必須啟動的時候加參數 --daemon
rsync --daemon
5:模塊配置
服務端(目標端,被同步的一端)的配置文件:
# /etc/rsyncd: configuration file for rsync daemon mode # See rsyncd.conf man page for more options. # configuration example: uid = root gid = root use chroot = no max connections = 2 pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log lock file = /var/run/rsyncd.lock [test] path = /captain/shell read only = no auth users = rsync secrets file = /etc/rsyncd.secrets list = no
1)uid、gid:當使用非root賬號時,那么一定要確保服務的的文件夾是否有該非root賬號寫入的權限
2)use chroot = no :是否可以切換到root目錄,當chroot為yes的時候,客戶端連接模塊的時候,先chroot到模塊參數指定的目錄下,必須使用root權限,端口號必須是1024以內,且不能備份path路徑外的鏈接文件
3)max connections = 2 :表示同時最大的連接數,也就是同時只能有兩個客戶端對自己進行連接
並且此選項必須與lock file = /var/run/rsyncd.lock 共同使用,若不指定,默認為/var/run/rsyncd.lock
4)path = /captain/shell:表示的是當客戶端把數據同步過來將保存的路徑
5)read only = no :如果為只讀,那么將不能進行寫同步,所以必須關閉
6)auth users = rsync :用來進行同步的用戶,不需要系統用戶中有,虛擬的就行
7)secrets file = /etc/rsyncd.secrets :表示的是賬號密碼文件,此文件可隨意指定,文件里必須以username:password的格式
rsync:123456
此文件權限必須為600,否則會報錯
8)list = no :表示的是當服務端拒絕客戶端的請求時,是否是直接顯示權限拒絕,還是現實模塊不存在,一般與hosts allow 和hosts deny一起使用
當一個被服務端拒絕的請求進來時,如果設置為 list = no,那么直接返回模塊不存在
如果不設置,那么是什么錯就返回什么錯
客戶端配置文件:
客戶端(源端,需將此台機器上的文件同步出去)的配置文件只需做簡單的修改,設置日志文件和pid文件路徑,然后啟動rsync即可
# /etc/rsyncd: configuration file for rsync daemon mode # See rsyncd.conf man page for more options. # configuration example: #uid = root #gid = root #use chroot = yes #max connections = 4 pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log # exclude = lost+found/ # transfer logging = yes # timeout = 900 # ignore nonreadable = yes # dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # [ftp] # path = /home/ftp # comment = ftp export area
vim /etc/rsyncd.passwd
123456
同步命令:
rsync -avz --password-file=/etc/rsyncd.passwd /data/shell/ rsync@192.168.1.103::test
-avz:表示同步過程中輸出信息顯示的格式
--password-file=/etc/rsyncd.passwd :表示客戶端將拿此密碼去服務端進行認證,所以這個文件里的秘密為上面服務的所設置的密碼,只需passwd
/data/shell/ :表示源目錄,將要把此目錄下的所有文件同步到遠端。
注:這里有無/的區別:有/的時候表示的是/data/shell/目錄下的東西同步過去,而無/的時候表示的是把shell目錄同步過去
同步報錯:
表示遠端配置文件里所設置的路徑不存在,所有得先創建目錄
