Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2168698
  • 博文数量: 317
  • 博客积分: 5670
  • 博客等级: 大校
  • 技术积分: 3677
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-10 17:51
文章分类

全部博文(317)

文章存档

2016年(2)

2015年(44)

2014年(68)

2013年(42)

2012年(23)

2011年(51)

2010年(67)

2009年(17)

2008年(3)

分类: LINUX

2011-07-14 11:55:17

一、windows与linux文件同步

  windows做为文件服务器,使用rsync的windows服务版本:cwRsyncServer 下载地址:

安装过程要设置用于系统服务的帐号和密码,可以默认。
注:此帐号用于启用crsync server服务,需要分配给帐号对要同步文件的相应权限,否则无法操作被同步的文件。

安装完成后修改配置文件 rsyncd.conf, 配置文件内容如下: 

代码如下:
port = 52326
use chroot = false
strict modes = false
#hosts allow = * #允许所有的访问
hosts allow = 192.168.10.2 #指定特定的IP允许访问
log file = rsyncd.log
lock file = rsyncd.lock
max connections = 10
UID = 0
GID = 0
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test]
path = /cygdrive/c/work
read only = false
transfer logging = no

[test2]
path = /cygdrive/d/wwwroot/yanghengfei_com
read only = yes
transfer logging = no
auth users = coldstar #同步使用的帐号
secrets file = rsyncd.secrets #密码文件

注:
rsyncd.secrets配置文件的格式为 用户名:密码,如:
coldstar:123456

即添加了一个用户 coldstar,密码为 123456。

Linux服务器上执行同步命令:

rsync -vzrtopg --progress --delete rsync://coldstar@192.168.10.1:52326/test2 /root/test2

然后在password: 提示符下输入密码即可。

也可以把密码写入配置文件引用,如:
rsync -vzrtopg --progress --delete --password-file=/etc/rsync.pass rsync://coldstar@192.168.10.1:52326/test2 /www/users/yanghengfei_com

将以上命令写入计划任务,每1分钟执行,即可实现实时同步的效果。

注:
上面这个命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。-- progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

附,rsync使用时的常见问题:

错误1: rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receiver=3.0.2]
解决:很大可能是服务器端没有开启 rsync 服务。开启服务。 或者开启了防火墙指定的端口无法访问。

错误2:@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解决:服务器端同步目录没有权限,cwrsync默认用户是Svcwrsync。为同步目录添加用户Svcwrsync权限。

错误3:@ERROR: failed to open lock file
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解决:服务器端配置文件 rsyncd.conf中添加 lock file = rsyncd.lock 即可解决。

错误4:@ERROR: invalid uid nobody
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.2]
解决:在rsyncd.conf文件中添加下面两行即可解决问题
UID = 0
GID = 0

错误5:@ERROR: auth failed on module test2
rsync error: error starting client-server protocol (code 5) at main.c(1296) [receiver=3.0.2]
解决:服务端没有指定正确的secrets file,请在 [test2]配置段添加如下配置行:
auth users = coldstar #同步使用的帐号
secrets file = rsyncd.secrets #密码文件

错误6:password file must not be other-accessible
解决:客户端的pass文件要求权限为600, chmod 600 /etc/rsync.pass 即可。
详细出处参考:

二、windows与windows文件或文件夹同步

1、准备两台电脑或者在虚拟机上准备两台电脑

我这里实验环境是在虚拟机上实现的。server:192.168.0.216

                                                            client: 192.168.0.229

2、在windows下使用xwrsync软件(请自行下载)

3、server端安装:cwRsync_server_......

     client端安装:cwrsync_2.0.......

二、安装与配置

SERVER:

1:安装cwRsync_Server_2.0.10_Installer.zip

2:启动opensshd
打开“控制面板”-->“工具”-->“服务”:
找到一个opensshd的服务,启动它 请自行设置为自动启动

首先在服务器上的E盘下建立一个文件夹test,在test下再创建一个文件或者文件夹名字任意

3:rsyncd.conf文件

编辑C:\Program Files\cwRsyncServer\rsyncd.conf,内容如下:

use chroot = false
strict modes = false
hosts allow = *           #####允许所有
log file = rsyncd.log
pid file = rsyncd.pid
port = 52326        ####我学的时候在网上找的教程也是用这个端口,换成别的端口也一样
max connections = 4      ####最大连接数

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test-cwrsync]       ####随便取一个名字
path = /cygdrive/e/test     #####服务器上文件或者文件夹的路径(e:/test)
read only = false
transfer logging = yes
lock file = rsyncd.lock

4、在C:\program files\cwrsyncserver\下创建rsyncd.secrets文件(用来存用户名与密码)如下:

test:123456   (test是用户名   123456是密码)

5、启动rsync服务

打开“控制面板”-->“管理工具”-->“服务”:
找到一个RsyncServer的服务,启动它 请自行修改为自动启动
到此server端配置结束,接下来配置client端 。

如果RsyncServer或openssh服务启动不了,说明rsyncd.conf文件有问题

三、CLIENT:

1、安装client端软件包:cwRsync_2.0.10_Installer.zip
2、编写一个批处理文件test.rsync.bat存放到c:\programg files\cwrsync\bin下

内容如下:

rsync -av rsync://192.168.0.216:52326/test-cwrsync    /cygdrive/e/test

3、在C:\program files\cwrsyncserver\下创建rsyncd.secrets文件(用来存密码)如下:

123456   (密码要与服务端的一样123456是密码)

最后执行c:\programg files\cwrsync\bin\test.rsycn.bat就可以在客户端的E盘下看到与服务器上一模一样的文件了。

windows作为server----linux作为client来同步

根据上面内容server不要动

下面只是来配置一下linux就可以了

1、首先在linux上要安装rsync

2、执行如下命令就可同步windows的文件内容了:

rsync -av rsync://192.168.0.216:52326/test-cwrsync   /share/    (/share:根下面的share文件夹)

在linux下的/share下就可看到与windows下一样的文件了

OKla

阅读(1883) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

taylor8403262011-09-22 23:34:40

谢谢分享,学习中。