当前位置: 首页 > 图文教程 > 服务器 > Windows服务器 > 使用rsync来实现文件同步

Windows服务器
Windows Server 2003 R2 Beta 2将公测
Windows 2003组策略和安全模板的应用
Windows 2003 64位正式版抢先体验
微软发布WinServer2003 R2 Beta2
Windows Server 2003 安全配置实战演习
快速关闭Windows 2003的三种方法
windows 2003服务器防止海洋木马的安全设置
制作无盘Windows 2003之无忧Ghost文件
为Windows 2003加装视频压缩
安全配置向导为Win2003打造“铜墙铁壁”
用Win 2003 SP1向导功能打造安全服务器
在Win 2003系统中挖掘免费刻录软件
Windows 2003优化系列之系统服务的开关
发扬DIY精神 为Windows 2003移植系统还原
活学活用Win2003分区增容功能
轻松管理Win 2003的“远程桌面”
自动管理Windows 2003好用的“远程桌面”
活学活用Windows Server 2003分区增容功能
使用Web接口远程维护Win2003服务器
教你一招:Windows2003系统优化大有玄机

Windows服务器 中的 使用rsync来实现文件同步


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-04   浏览: 45 ::
收藏到网摘: n/a

先对这个dd进行简介,当你的网站访问量大了,一台服务器承受不住了 那好,这个时候,rsync来了。 rsync ->>> remote synchronize
呵呵,不用解释了吧,还是解释一下吧,文件同步的意思的说。。。
第一步,先来下载这个免费的软件。
rsync.samba.org/ 或者 samba.anu.edu.au/rsync
本站最新版本下载地址
http://www.ruanchen.com/ofts/2149.html
PS:一定要去官方网站下载最新的版本,
因为2.6.1之前的版本有配置模块路径穿越漏洞。。。
解压缩后,编译很简单
./configure –prefix=/usr/local/rsync && make && make install
然后先来配置服务端吧
先来编辑服务端配置文件
#vi /etc/rsyncd.conf
#全局配置
uid = root
gid = root
hosts allow = 192.168.0.0/24
#hosts deny = 0.0.0.0/32
use chroot = no # 不使用chroot
max connections = 10 # 最大连接数为10
#motd file = /etc/rsyncd.motd #欢迎信息文件名称和存放位置(此文件没有,可以自行添加)
pid file = /var/run/rsyncd.pid #指定rsync的pid文件
lock file = /var/run/rsync.lock #指定支持max connections参数的锁文件,默认值是/var/run/rsyncd.lock
log file = /var/log/rsyncd.log #指定rsync的日志文件,而不将日志发送给syslog
#下面就是每个模块的配置了
[rsync_module_name1] # 这里是认证的模块名,在client端需要指定
path = /rsync_path/dir1 # 需要做镜像的目录
comment = rsync files
ignore errors # 可以忽略一些无关的IO错误
read only = yes # 只读
list = no # 不允许列文件
auth users = rsync_user # 认证的用户名,如果没有这行,则表明是匿名,多个用户用,分隔
secrets file = /etc/rsyncd.pas # 认证文件名
#pid file = /var/run/rsyncd.pid
#log file = /var/log/rsyncd.log
#lock file = /var/run/rsync.lock
[rsync_module_name2]
……
其中,个人认为,没项配置都可以既在全局配置,也可以在模块内部配置,其中如果模块内部如果有与全局相同的配置,
则模块内部的配置覆盖全局的配置。
然后编辑你上面指定的认证文件,我这里是: /etc/rsyncd.pas
#vi /etc/rsyncd.pas
格式为: username:password
rsync_user:rsyncofpass
安全起见,更改认证文件属性
#chmod 0600 /etc/rsyncd.pas
ok,现在启动下试试看吧。
#/usr/local/rsync/bin/rsync –daemon
你也可以指定rsync运行的端口
#/usr/local/rsync/bin/rsync –daemon –port=873
如果要在启动时把服务起来,有几种不同的方法,比如:
加入inetd.conf
编辑/etc/services,加入rsync 873/tcp,指定rsync的服务端口是873
编辑/etc/inetd.conf,加入rsync stream tcp nowait root /bin/rsync rsync –daemon
加入rc.local
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时rsync –daemon加载进去。
我这里是直接加入 /etc/rc.local
/usr/local/rsync/bin/rsync –daemon –port=873
873就是rsync的默认端口号。
记得配置防火墙,允许你rsync端口的tcp和udp协议。
873:tcp 873:udp
下面开始配置客户端
下面这个命令行中-vzrtopg里的v是verbose,
z是压缩传输,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数。
u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。
–progress是指显示出详细的进度情况,
–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
后面的[email protected]::rsync_module_name1中,之后的rsync_module_name1是模块名,也就是在/etc/rsyncd.conf中自定义的名称,rsync_user是指定模块中指定的可以同步的用户名。
最后的/tmp是备份到本地的目录名。
在这里面,还可以用-e ssh的参数建立起加密的连接。
可以用–password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
#/usr/local/rsync/bin/rsync -vzrtopg –progress –delete [email protected]::rsync_module_name1 /tmp/
Password:
或者你也可以制定password文件
由于需要系统crontab执行,所以这里采用读入密码文件的方式,
这个时候就成功了。
#vi /etc/rsyncd.pas
加入
rsync_user:rsyncofpass
注意,客户端的密码文件只需要密码,而不需要用户名!
rsyncofpass
更改文件权限:
#chmod 0600 /etc/rsyncd.pas
#/usr/local/rsync/bin/rsync -vzrtopgu –progress –delete –password-file=/etc/rsyncd.pas [email protected]::rsync_module_name1 /tmp/
不知道为什么,总是提示下面的认证错误
@ERROR: auth failed on module rsync_module_name1
rsync error: error starting client-server protocol (code 5) at main.c(1383) [receiver=2.6.9]
郁闷了,怎么都搞不定,还希望有经验的朋友给提供一下支持。。。
在今天在客户端密码文件只输入密码后,终于成功了
以后有时间再研究认证问题吧,时间紧,任务急,把验证先绕过。