根据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/
注意:以上命令不处理子目录
转载于:https://blog.51cto.com/891002/1853222