免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1008 | 回复: 0
打印 上一主题 下一主题

rsync [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-22 13:20 |只看该作者 |倒序浏览
Rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync本来是用
以取代rcp的一个工具,它当前由 rsync.samba.org维护。Rsync使用所谓的“Rsync演算法”
来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不
是每次都整份传送,因此速度相当快。运行Rsync server的机器也叫backup server,一个
Rsync server可同时备份多个client的数据;也可以多个Rsync server备份一个client的数
据。
  Rsync可以搭配rsh或ssh甚至使用daemon模式。Rsync server会打开一个873的服务通道
(port),等待对方Rsync连接。连接时,Rsync server会检查口令是否相符,若通过口令查核
,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送
二个文件之间不同的部份。
  Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试
。此外,它在windows平台下也有相应的版本,比较知名的有cwRsync和Sync2NAS。
  Rsync的基本特点如下:
  1.可以镜像保存整个目录树和文件系统;
  2.可以很容易做到保持原来文件的权限、时间、软硬链接等;
  3.无须特殊权限即可安装;
  4.优化的流程,文件传输效率高;
  5.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
  6.支持匿名传输。
  1.2 核心算法
  假定在名为α和β的两台计算机之间同步相似的文件A与B,其中α对文件A拥有访问权,
β对文件B拥有访问权。并且假定主机α与β之间的网络带宽很小。那么rsync算法将通过下
面的五个步骤来完成:
  1.β将文件B分割成一组不重叠的固定大小为S字节的数据块。最后一块可能会比S 小。
  2.β对每一个分割好的数据块执行两种校验:一种是32位的滚动弱校验,另一种是128位
的MD4强校验。
  3.β将这些校验结果发给α。
  4.α通过搜索文件A的所有大小为S的数据块(偏移量可以任选,不一定非要是S的倍数),
来寻找与文件B的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校
验的特性很快完成。
  5.α发给β一串指令来生成文件A在β上的备份。这里的每一条指令要么是对文件B经拥
有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件B的任
何一个数据块匹配上的。
  1.3 命令语法
  rsync的命令格式可以为以下六种:
  rsync [OPTION]... SRC DEST
  rsync [OPTION]... SRC [USER@]HOST:DEST
  rsync [OPTION]... [USER@]HOST:SRC DEST
  rsync [OPTION]... [USER@]HOST::SRC DEST
  rsync [OPTION]... SRC [USER@]HOST::DEST
  rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
  对应于以上六种命令格式,rsync有六种不同的工作模式:
  1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作
模式。
  2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当
DST路径地址包含单个冒号":"分隔符时启动该模式。
  3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当
SRC地址路径包含单个冒号":"分隔符时启动该模式。
  4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模
式。
  5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该
模式。
  6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可
vi /etc/rsyncd.conf 的具体配置:(如没有可以自己创建)
例如:
uid = nobody
gid = nobody
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[www]
path = /www/
ignore errors
read only = true
list = false
hosts allow = 202.99.11.121
hosts deny = 0.0.0.0/32
auth users = backup
secrets file = /etc/backserver.pas
[web_user1]
path = /home/web_user1/
ignore errors
read only = true
list = false
hosts allow = 202.99.11.121
hosts deny = 0.0.0.0/32
uid = web_user1
gid = web_user1
auth users = backup
secrets file = /etc/backserver.pas
[web_user2]
path = /home/web_user2/
ignore errors
read only = true
list = false
hosts allow = 202.99.11.121
hosts deny = 0.0.0.0/32
uid = web_user2
gid = web_user2
auth users = backup
secrets file = /etc/backserver.pas

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8045/showart_326379.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP