IP:192.168.11.6 (对应的外网IP为122.***.***.*** )
端口:873
【客户端】
操作系统:centos release 5.5
IP:202.***.***.***
同步命令工具:rsync
【实现功能】
将公司内网windows系统下文件夹的文件同步到外网服务器centos系统指定的文件夹下
2.服务器端的安装与配置
直接解压安装即可,本人是安装在E:\Program Files\ICW目录下
在E:\Program Files\ICW目录下修改rsync.conf文件
use chroot = false
strict modes = false
hosts allow = 202.***.***.*** 192.168.11.0/255.255.255.0
#hosts allow = *
hosts deny=*
log file = rsyncd.log
pid file = rsyncd.pid
#在安装目录下创建password文件,内容为picuser:icbuypicuser,前面为auth users指定的用户名,后面为密码
secrets file = password
uid=0
gid=0
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[pic]
#针对需要同步的目录,你需要添加SvcwRsync 这个用户的读取权限
path = /cygdrive/c/pic2010
#只读
read only = true
#是否记录详细的传输情况
transfer logging = yes
list =no
#指定用户名
auth users=picuser
#默认端口
port=873
在windows服务里启动RsyncServer
3.在客户端使用rsync命令进行同步
首先使用telnet命令查看服务器端的873端口是否开放
telnet 122.***.***.*** 873
如果提示了cwrsync版本,就表示成功
rsync -az --password-file=/root/cwrsync.pwd picuser@122.***.***.***::pic /pic/2010/
也可以在crontab里进行定时计划任务
注意此处的passwordv-file是存放在客户端上的,需要更改权限为600
常见错误分析
当使用rsync服务时出现错误,可以通过服务器端的rsync.log文件查看具体错误提示,并根据提示找寻解决方法,以下是常见的错误
1.@ERROR: invalid uid' 或@ERROR: invalid gid'
原因: 配置文件中没有设置uid及gid,或者设置的有问题
解决:设置uid=0
gid=0
2.@ERROR: auth failed on module xxxxx
rsync: connection unexpectedly closed (90 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)
原因:这是因为密码设错了, 无法登入成功, 请再检查一下 服务器端的password文件及客户端cwrsync.pwd文件中的密码设定, 二端是否一致
解决:确保密码一致
3.password file must not be other-accessible
continuing without password file
Password:
原因:客户端cwrsync.pwd文件权限是否为600
4.@ERROR: chdir failed
原因:服务器端文件目录path设置有问题,不过本次试验中发现中文路径也会出现这个提示
解决:检查文件目录
由于我要同步的文件夹的路径包括中文C:\视频转换软件\采集软件\cn.hzshw.com\pic\2010,所以我在windows系统 下做了个bat脚本,每天定时将C:\视频转换软件\采集软件\cn.hzshw.com\pic\2010目录下新生成的文件夹复制到C:\ pic2010下,脚本piccopy.bat,并执行定时计划任务
@echo off
set DaysAgo=1
set Today=%date:~6,1%%date:~8,2%
set /a PassDays=%Today%-1
rd /Q /S c:\pic2010\%PassDays%
md c:\pic2010\%Today%
xcopy /c /e /h /r /k /y C:\视频转换软件\采集软件\cn.hzshw.com\pic\2010\%Today% c:\pic2010\%Today%
exit