根据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/
注意:以上命令不处理子目录