根據rsync協議進行文件差異同步的服務
1.1.1 參考說明
服務器說明請在服務器上輸入man rsyncd
客戶端使用說明請在客戶端輸入rsync (Linux 客戶端)
1.1.2 安裝
使用命令檢查當前服務的安裝情況:
chkconfig —list | grep rsync
rsyncd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsync: off (不用,基於xinetd)
rsyncd爲一個單獨的服務,如果沒有從以下光盤位置安裝
/suse/x86_64/rsync-2.6.8-36.22.x86_64.rpm
使用命令rpm -ivhrsync-2.6.8-36.22.x86_64.rpm安裝rsync服務
同上可以使用chkconfig命令修改服務的自動啓動情況,使用service命令啓動或者關閉服務
1.1.3 服務端配置
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
1.1.4 客戶端使用方法
如果客戶端爲Linux,使用如下命令which rsync檢查是否存在命令,否則使用服務端一樣的方法安裝rsync-2.6.8-36.22.x86_64.rpm包,客戶端爲windows,請自行安裝windows的客戶端版本
1.1.4.1 客戶端測試命令(使用以上的服務端配置)
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](服務端重新啓動服務後的沒有權限錯誤信息)
1.1.4.2 客戶端正常使用命令
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/
注意:以上命令不處理子目錄