又一个 WordPress 博客

利用rsync给windows for windows镜像服务器进行异步备份

rsync是个给Unix系统用的应用软件,它使从一个地方到另一个地方的文件与目录同步,并同时恰当的利用差分编码以减少数据传输。rsync的一个大部分类似程序或协议中所未见重要特性是镜像发生在每个方向只需要一次传送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。
在常驻模式(daemon mode),rsync监听默认TCP端口873,以本地rsync传输协议或者通过远程shell如RSH或者SSH伺服文件。在后面的SSH情况下,rsync客户端运行程序必须安装在本地和远程机器上。
rsync是自由软件,以GNU通用公共许可证发行

公司有一台服务器一台VPS。都是上海电信 之前有口滤用Squid做反向代理,后来口滤到备案问题,数据服务器是不能做域名的镜像的!,最后一位大湿教我支了解一下Rsync .Rsync是 linux下的 不过win下也有相同类软件!就是cwRsync,此软件分为服务器端/客户端

cwRsync下载

主服务器:A 192.168.1.99

从服务器:B 192.168.1.88

1、主服务器A上安装服务端

下载安装cwRsyncServer_4.0.1_Installer.zip,server 包括了 client 的功能。

安装完后,会在 系统服务 中增加 RsyncServer 和 ssh 服务,进入服务管理,设置为自动启动。安装成功后,要备份的文件目录必须加上 SvcwRsync 这个用户可读权限。

2、主服务器A配置服务端
进入cwRsync安装目录,配置 rsyncd.conf 如下。

程序代码:

port = 9999 #默认端口是873,做了端口限制的要开启cwRsync所使用的端口。

use chroot = false

strict modes = false

hosts allow = *

log file = rsyncd.log #LOG

pid file = rsyncd.pid

# Module definitions

# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work

#

[web]

path = /cygdrive/d/web/test #注意格式,这说明是D盘WEB目录下的test目录

read only = true #只读

list = no

auth users = username #指定用户名, 如果没有这行,则表明是匿名

secrets file=/cygdrive/d/rsyncd.secrets 这里指定了认证文件目录,名字叫 rsyncd.secrets,其内容是txt编辑为 username:123456 前面是用户名,后面是密码

transfer logging = no #是否记录详细的传输情况

3、从服务器B安装cwRsync_4.0.1_Installer.zip


1、telnet 192.168.0.20 9999 #连接A服务器测试

2、设置客户端密码文件 例如:/cygdrive/d/rsyncd.secrets 内容只要含有密码行 123456 即可,为安全属性改为只读。

特别注意:

#从服务器B密码文件存放的位置一定要是NTFS分区;

#另外 –password-file=/cygdrive/d/rsyncd.secrets最好是最后面指定:

Rsync -vzrtopg –progress –delete username@192.168.0.10::web /cygdrive/d/test –password-file=/cygdrive/d/rsyncd.secrets

4、cwRsync数据同步

因为只是最简单的数据同步,所以就不使用 ssh 了,直接启动 rsync 服务就可以了。

程序代码:

#无密码、端口:

rsync -vzrtopg  –progress  –delete  –port 9999 192.168.0.10::web /cygdrive/d/test

#有密码、端口:

Rsync -vzrtopg  –progress  –delete  test@192.168.0.10::web /cygdrive/d/test  –password-file=/cygdrive/d/rsyncd.secrets

注:

1.password-file,你要在指定的目录下定义一个 rsyncd.secrets文件,只要写test这个用户名对应的密码就可以。这里是D盘根目录下的rsyncd.secrets。

2. (表示将客户端test目录下文件备份到服务器test模块下。如果将/test/放后面,表示将服务器test模块下目录备份带客户端/test/下。)

Tags: , , , , ,

发表评论