根據rsync協議進行文件差別同步的服務java
服務器說明請在服務器上輸入man rsyncdwindows
客戶端使用說明請在客戶端輸入rsync (Linux 客戶端)服務器
使用命令檢查當前服務的安裝狀況:socket
chkconfig —list | grep rsyncide
rsyncd 0:off 1:off 2:off 3:off 4:off 5:off 6:off測試
rsync: off (不用,基於xinetd)spa
rsyncd爲一個單獨的服務,若是沒有從如下光盤位置安裝rest
/suse/x86_64/rsync-2.6.8-36.22.x86_64.rpm日誌
使用命令rpm -ivhrsync-2.6.8-36.22.x86_64.rpm安裝rsync服務code
同上能夠使用chkconfig命令修改服務的自動啓動狀況,使用service命令啓動或者關閉服務
rsyncd的服務配置文件位置:/etc/rsyncd.conf,能夠使用vi命令進行編輯修改
具體配置參考使用以下命令查看:man rsyncd
gid = users
read only = true
use chroot = true
transfer logging = true #(若是存在大量的數據同步,爲減少日誌,能夠關閉本項)
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
#hosts allow = trusted.hosts
slp refresh = 300
[test]
path=/data
comment = rsync demo
read only = false
hosts allow = 127.0.0.1 10.100.5.22 (限定客戶端的來源)
# auth users = user
# secrets file = /etc/rsyncd.secrets
由於使用了運行鏈接的客戶端IP定義,爲前臺程序調用方便,能夠不設置用戶身份驗證
服務端配置修改後應用新的配置命令:
service rsyncd reload
rsync服務從新啓動命令:
service rsyncd restart
若是客戶端爲Linux,使用以下命令which rsync檢查是否存在命令,不然使用服務端同樣的方法安裝rsync-2.6.8-36.22.x86_64.rpm包,客戶端爲windows,請自行安裝windows的客戶端版本
rsync rsync://10.100.1.72
test rsync demo (爲服務器傳送的信息,表示服務器正常)
rsync rsync://10.100.1.72/test
drwxr-xr-x 156 2009/03/16 17:57:54 .
-rw-r--r-- 818897 2008/12/15 16:58:47pcre-7.7.tar.bz2
drwx------ 29 2009/02/27 16:25:22 .Trash-0
drwx------ 4096 2008/12/10 09:45:58 .Trash-root
drwx------ 4096 2009/03/24 09:58:48 .Trash-schen
drwxr-xr-x 61 2008/12/30 10:23:08 java
drwxr-xr-x 23 2008/12/15 13:44:38 myproject
drwxr-xr-x 22 2009/01/19 13:04:49 perl
drwxrwxrwx 4096 2009/02/27 16:23:23 share
drwxr-xr-x 43 2008/12/22 15:08:25 vbox
drwxrwxrwx 107 2009/03/16 17:52:38 workdir
服務器中配置名稱爲test的目錄工做正常,若是該客戶機沒有權限,將顯示以下信息:
rsync: failed to connect to 10.100.1.72:Connection refused (111)
rsync error: error in socket IO (code 10)at clientserver.c(107) [receiver=2.6.8](該客戶機自己有權限,後服務端刪除該客戶機後從新載入配置後沒有權限的錯誤信息)
或者以下:
@ERROR: access denied to test from unknown(10.100.5.22)
rsync error: error starting client-serverprotocol (code 5) at main.c(1296) [receiver=2.6.8](服務端從新啓動服務後的沒有權限錯誤信息)
rsync -avzh --no-p --no-g--delay-updates —progress rsync://10.100.1.72/test /tmp/rsynctemp/
rsync://10.100.1.72/test 服務器和服務器上須要進行同步的目錄配置
/tmp/rsynctemp/ 本地須要和服務器進行同步的目錄
以上命令從服務器上拿到全部文件,和本地保持一致,若是本地文件比服務器上多,多出的文件不被刪除,若是須要刪除本地多餘的文件使用以下命令
rsync-avzh --no-p --no-g --delay-updates --progress —delete rsync://10.100.1.72/test /tmp/rsynctemp/
若是隻更新某些類型的文件,使用以下命令:
rsync -avzh --no-p --no-g--delay-updates --progress —delete rsync://10.100.1.72/test/*.txt /tmp/rsynctemp/
注意:以上命令不處理子目錄