linux和windows同步数据,rsync server cwrsync client
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模块的绝对路径
vi /etc/rsync.pass
test:test
//前面是用户名,后面是密码中间用冒号分割
chmod 600 /etc/rsync.pass
//修改密码文件的权限
mkdir /home/test
chown daemon.daemon /home/test
windows client
下载cwrsync的安装包
可以从这个网站获取到 http://sourceforge.net/projects/sereds/files/cwRsync
然后创建一个install.bat的脚本
@echo off
cd C:\Program Files\WinRAR
rar.exe e -o+ "%HOMEPATH%"\桌面\test.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%"\桌面\test.rar "%HOMEPATH%"\桌面\
cd "%HOMEPATH%"\桌面\
#以上三行主要是解压test.rar的压缩包
cwrsync.exe
#调用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,客户端就制作完成了,可以发布给客户使用,其中的细节根据自己的情况作修改吧