利用Rsync进行数据有两种方式,一是利用守护进程通过873端口通信,二是利用ssh协议通信。之前给大家介绍过利用守护进程进行rsync数据同步,详情点这里
今天介绍利用ssh协议并且免密码从linux自动同步数据到windows。
描述
客户端:windows server 2012 standard
服务端:centos6
通信协议: ssh
安装win版rsync客户端
工作需要将linux主机上的数据同步到windows主机上,
windows又做了访问限制:只可主动发送请求,所以这次把win主机当作客户端(请求端)进行rsync同步数据工作。首先下载rsync客户端,这里包含server端和client的。但是这里只用rsync的客户端。
下载完成之后双击安装(安装步骤省略)
进入安装路径:C:\Program Files (x86)\cwRsync\bin,可以看到我们即将会用到的工具:
利用ssh-keygen.exe初始化win端的密钥对儿,注意密钥的存放位置以及路径的写法:
然后查看生成的密钥,并将id_rsa.pub上传到目标linux服务器上:
登录linux服务器对密钥进行设置,初始化密钥,如果已经存在了,此步省略。
拷贝win端的公钥到.ssh目录,并设置权限:
在win端ssh登录测试,手动测试,首先需要设置环境变量:
SETLOCALSET CWRSYNCHOME=C:\Program Files (x86)\cwRsyncSET HOME=C:\Program Files (x86)\cwRsyncSET CWOLDPATH=%PATH%SET PATH=%CWRSYNCHOME%\BIN;%PATH%
-p
-i
登录成功,不需要输入密码:
测试rsync同步。说明:数据源linux主机的/tmp/rsynctest目录
目的:本机D:\rsync_test_data目录。
同步脚本:test.bat@echo offecho.echo ##############BEGIN###############SETLOCALSET CWRSYNCHOME=C:\Program Files (x86)\cwRsyncSET HOME=C:\Program Files (x86)\cwRsyncSET CWOLDPATH=%PATH%SET PATH=%CWRSYNCHOME%\BIN;%PATH%cd C:\Program Files (x86)\cwRsync\bin.\rsync.exe -e '.\ssh.exe -p xxxx -i /cygdrive/c/id_rsa' -arPv xx@192.168.xxx.x:/tmp/rsynctest /cygdrive/d/rsync_test_data/ pause
执行脚本:
同步成功: