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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务