Windows定时用Rsync同步数据到Linux

Published: Tags: RSYNC LINUX

有两台服务器,分别运行着「Windows 2003」和「Ubuntu 12.04」,现在需要把Windows上的数据定时同步备份到Linux上,查了网上的一些资料,都是说在Linux上建立一个Rsync的服务端,然后在Windows上使用CwRsync把数据同步过去。

但要我在Linux上弄个Rsync的服务端还要去配置什么的,太麻烦了,我从来都是习惯把事情弄得最简单的。既然Linux可以用密码或者公私钥直接Rsync数据到另外的一台Linux,那为什么Windows和Linux之间不用这样的方式呢?于是有了下面的流水帐记录方法(完全不解释其他不相关的,不懂可以自行放狗搜索)

1、下载Windows的CwRsync,地址点这里,接着当然就是安装刚刚下载的CwRsync啦。

2、有两个系统变量要修改,一个是%PATH%要加上CwRsync的安装路径,毕竟「ssh.exe」和其他的调用库等都会用到,当然如果你装到了原有的%PATH%中那就另当别论,忽略吧。另外一个变量是%HOME%,这个默认是找不到的需要自己新建,原因不记得在哪个英文论坛上看到过,若有求知欲请自行搜索,而我是设置%HOME%为「c:\ssh-rsa」这个目录。

3、打开cmd命令行,用命令ssh-keygen -t rsa生成rsa公私钥放到「/home/id_rsa」(实际就是上文的「c:\ssh-rsa」目录)里面,接着把「/home/id_rsa.pub」的内容加到Linux中的「~/.ssh/authorized_keys」文件最后面(记得要先换行再添加,这样就可以不用密码,而是通过公钥认证)。

4、测试一下效果rsync -r /cygdrive/d/www test@192.168.1.15:/data/backup/,如果你要指定另外路径下的私钥,可用命令rsync -r -e "ssh -i /cygdrive/c/other/id_rsa" /cygdrive/d/www test@192.168.1.15:/data/backup/,另外要注意「/cygdrive/d/www」和「/cygdrive/d/www/」最后面是否有斜杠的区别。

以上就是所有的设置了,是不是比其他的方法要更简单呢?如果你不用公私钥,而是用密码同步的话,那实际上只要做1、2、4三步,而不用管第3步。当然了如果想使用密码但又不想每次手动输入,请自行谷歌下expect或者是其他程序的使用方法。

毕竟说的是「定时同步」,那最后再来回应一下标题中的「定时」两个字,就是把上面的命令做成bat批处理,加到Windos中的任务计划就大功告成了。