全部博文(317)
分类: 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