1. 程式人生 > >rsync 通過服務的方式同步

rsync 通過服務的方式同步

基於c/s架構,客戶端、服務端。服務端開啟服務,rsync,監聽埠873,埠可自定義,
要編輯配置檔案/etc/rsyncd.conf

rsyncd.conf樣例
port=873 #監聽埠,可自定義,改完埠得重啟
log file=/var/log/rsync.log #指定日誌檔案
pid file=/var/run/rsyncd.pid #指定pid檔案,這個檔案的作用涉及服務的啟動、停止等程序管理操作。
address=192.168.133.130 #綁定了ip地址,如果不繫結,則是0.0.0.0,指的是全部的ip地址
[test] #指定模組名,裡面內容自定義。
path=/tmp/rsync #如果沒有則需要建立目錄,可設定為777許可權,方便測試,指定資料存放的路徑。
use chroot=true #表示只能同步path所定義的路勁裡的內容。這樣做的原因是實現額外的安全防護,但缺點是需要以roots許可權,並且不能備份指向外部的符號連線所指向的目錄檔案。預設情況下chroot值為true,如果你的資料當中有軟連線檔案,阿銘建議你設定成false。
max connections=4 #指定最大的連線數,預設是0,即沒有限制。
read only ture|false #如果為true,則不能上傳到該模組指定的路徑下
list=true #表示當用戶查詢該伺服器上的可用模組時,該模組是否被列出,設定為true則列出,false則隱藏。
uid=root #指定傳輸檔案時以哪個使用者/組的身份傳輸。
gid=root #指定傳輸檔案時以哪個使用者/組的身份傳輸。
auth users=test #auth users:指定傳輸時要使用的使用者名稱。

secrets file=/etc/rsyncd.passwd #指定密碼檔案,/etc/rsyncd.passwd可在這個路徑裡,建立檔案,設定密碼,格式:使用者名稱:密碼,該引數連同上面的引數如果不指定,則不使用密碼驗證。
注意該密碼檔案的許可權一定要是600。
例如:rsync -avP [email protected]::test/1.txt /tmp/ test1.txt 當設定了auth users和secrets file後,客戶端連服務端也需要用使用者名稱密碼了,若想在命令列中帶上密碼,可以設定一個密碼檔案
例如 vim /tmp/rsync_pass 在這個文字文件裡直接輸入密碼 ,許可權改完600
rsync -avL

[email protected]::test/test1/ /tmp/test8/ --password-file=/tmp/rsync_pass #--password-file=/tmp/rsync_pass 指定密碼檔案路徑

hosts allow=192.168.133.132 1.1.1.1 2.2.2.2 192.168.133.0/24 #表示被允許連線該模組的主機,可以是IP或者網段,如果是多個,中間用空格隔開。用於哪個ip連線這個機器。

啟動服務rsync --daemon
格式:rsync -avP /tmp/ test1.txt 192.168.133.130::test/1.txt #將/tmp/ test1/同步到192.168.133.130/tmp/rsync 這個路徑下去且改名為:1.txt ,[] 代表模組名,模組名代表的就是路徑/tmp/rsync
如果報錯,可用telnet檢查,並檢視是否防火牆開啟

rsync -avP 192.168.133.130::test/1.txt /tmp/ test1.txt #將192.168.133.130下的/tmp下rsync的1.txt 拉去到本機下改名為test1.txt

rsync -avP --port 8730 192.168.133.130::test/1.txt /tmp/ test1.txt #--port 8730指定8730埠