您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页Rsync同步文件Windows文件到Linux服务器

Rsync同步文件Windows文件到Linux服务器

来源:华佗健康网


Rsync同步Windows下的文件到Linux服务器端

首先在官网下载http://rsync.samba.org/相对应的软件包

注:本文转自互联网,已将原有的错误修改过来,亲测过Windows2003同步到RHEL5.5

linux server

一般系统都自带rsync,如果没有就挂载系统盘自己安装一下,安装挺简单的不用我再多说了

vi /etc/rsyncd.conf

uid = daemon

//这个用户是系统用户,当rsync客户端连接上服务器后,会映射成这个用户上传或者下载文件

gid = daemon

//组名,效果同上

log file = /var/log/rsyncd.log

//rsync的日志文件保存位置

max connections = 5

//最大允许的并发链接是5

hosts allow = 192.168.1.0/24

//只允许指定网段的地址链接服务器

hosts deny = *

//拒绝其他所有的链接

list = yes

//用户具有list目录的权限

auth users = test

//rsync的用户名,这个用户是客户端使用的,链接服务器成功后会映射成上面的daemon用户

read only = no

//不是只读模式,这样用户就有上传的权限了

write only = yes

//不允许用户下载

secrets file = /etc/rsync.pass

//rsync用户的密码文件保存位置

[test]

//服务端的模块,客户端登录时候需要指定

path = /home/test

//test模块的绝对路径

编辑/etc/rsync.pass文件

vi /etc/rsync.pass

test:test

//前面是用户名,后面是密码中间用冒号分割

chmod 600 /etc/rsync.pass

//修改密码文件的权限

mkdir /home/test

chown daemon.daemon /home/test

启动rsync启动服务

[root@cmmailapp2 data]# cat /etc/xinetd.d/rsync

# default: off

# description: The rsync server is a good addition to an ftp server, as it \\

# allows crc checksumming etc.

service rsync

{

disable = yes //需要修改为no;

socket_type = stream

wait = no

user = root

server = /usr/bin/rsync

server_args = --daemon

log_on_failure += USERID

}

[root@cmmailapp2 data]# chkconfig --level 2345 rsync on

[root@cmmailapp2 data]# chkconfig rsync on

[root@cmmailapp2 data]# chkconfig --level 2345 xinetd on

[root@cmmailapp2 data]# service xinetd restart

Stopping xinetd: [ OK ]

Starting xinetd: [ OK ]

windows client

下载cwrsync的安装包

可以从这个网站获取到 http://sourceforge.net/projects/sereds/files/cwRsync

然后创建一个install.bat的脚本

@echo off

cd C:\\Program Files\\WinRAR

rar.exe e -o+ \"%HOMEPATH%\"\\桌面\est.rar \"%HOMEPATH%\"\\桌面\\

cd \"%HOMEPATH%\"\\桌面\\

echo \"C:\\Program Files\\cwRsync\\bin\\rsync.exe\" -vzrtopg --progress --exclude=Recycled --exclude=RECYCLER --exclude=\"System Volume Information\" --password-file=/cygdrive/C/\"Program Files\"/cwRsync/bin/rsync.pass /cygdrive/d/ test@192.168.1.1::test > C:\"\\Program Files\"\\cwRsync\\bin\\rsync.bat

echo test > C:\"\\Program Files\"\\cwRsync\\bin\\rsync.pass

\"C:\\Program Files\\cwRsync\\bin\\chmod.exe\" 600 \"/cygdrive/C/Program Files/cwRsync/bin/rsync.pass\"

at 12:00 /interactive /every:m,t,w,th,f \"C:\\Program Files\\cwRsync\\bin\\rsync.bat\"

下面是详细的介绍:

cd C:\\Program Files\\WinRAR

rar.exe e -o+ \"%HOMEPATH%\"\\桌面\est.rar \"%HOMEPATH%\"\\桌面\\

cd \"%HOMEPATH%\"\\桌面\\

#以上三行主要是解压test.rar的压缩包

cwrsync.exe

(注:以上红色部分信息可以不用命令实现,手动将下载的cwRsync解压安装即可)

#调用cwrsync的安装主程序,根据提示一路下一步就可以,没有需要注意的地方

echo \"C:\\Program Files\\cwRsync\\bin\\rsync.exe\" -vzrtopg --progress --exclude=Recycled --exclude=RECYCLER --exclude=\"System Volume Information\" --password-file=/cygdrive/C/\"Program Files\"/cwRsync/bin/rsync.pass /cygdrive/d/ test@192.168.1.1::test > C:\\\"Program Files\"\\cwRsync\\bin\\rsync.bat

#上面这句话会生成一个上传文件的脚本,具体内容如下:

#echo 是打印内容

#C:\\Program Files\\cwRsync\\bin\\rsync.exe cwrsync的主程序路径

#-vzrtopg

#-v, --verbose 详细模式输出

#-z, --compress 对备份的文件在传输时进行压缩处理

#-r, --recursive 对子目录以递归模式处理

#-t, --times 保持文件时间信息

#-o, --owner 保持文件属主信息

#-p, --perms 保持文件权限

#-g, --group 保持文件属组信息

#--progress 显示备份过程

#--exclude 是排除的意识,我的范例中排除了三个目录

#--passwrod-file 密码文件的存放路径

#/cygdrive/d/ 本地的路径,我这里是D盘,前面cygdrive必须要跟上,要不cwrsync无法识别你的路径

#test@172.16.6.165::test 目标地址,第一个test是用户名@后面是server的地址::后面是servier端的模块名,在rsyncd.conf文件中定义过

#> 重定向和linux系统一样的用法

#C:\"\\Program Files\"\\cwRsync\\bin\\rsync.bat 将以上的内容重定向到rsync.bat这个文件中

#更多的信息可以查看rsync的帮助

echo test > C:\"\\Program Files\"\\cwRsync\\bin\\rsync.pass

#这句话是生成密码文件,密码的存放路径,密码是test,密码文件不需要用户名,只有密码就可以了

\"C:\\Program Files\\cwRsync\\bin\\chmod.exe\" 600 \"/cygdrive/C/Program Files/cwRsync/bin/rsync.pass\"

#使用cwrsync自带的chmod给密码文件赋予600的权限,一定要注意格式,这里是模拟了linux的用法,不要搞错了,注意两点一个是cygdrive和反斜线

at 12:00 /interactive /every:m,t,w,th,f \"C:\\Program Files\\cwRsync\\bin\\rsync.bat\"

#win自带的一个服务,将添加我们创建的脚本到任务计划,注意这个任务计划的作者是system用户

#at是命令,必须保证task scheduler服务是启动的 12:00任务计划在12点执行,/interactive任务计划和桌面有交互,用户能看见弹出的cmd窗口

#/every:m,t,w,th,f 周一至周五执行任务计

划 \"C:\\Program Files\\cwRsync\\bin\\rsync.bat\"命令具体路径

#关于at的更多用法大家还是多看看帮助文件吧

将下载回来的cwrsync.exe和我们的install.bat压缩到一起,压缩名是text.rar,客户端就制作完成了,可以发布给客户使用,其中的细节根据自己的情况作修改吧

(注:以上内容属于计划任务,为了让Rsync能够自动定时执行同步,可以不用以上命令,而直接使用Windows任务计划工具)

过程中遇到一个错误:

rsync error: error starting client-server protocol (code 5) at main.c(1296) [sender=2.6.8]

解决办法:

出现此错误的原因根据我出现和网上的说法皆是因为客户端的rsync.pass造成的,文件的内容必须是服务器端指定的rsync用户的密码,不是\"user:password\"(仅仅只有一个password),我出的问题是因为密码后面带了个空格也不行。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务