window系统的Rsync同步实战分析第1/2页
程序员文章站
2022-03-19 10:01:10
其于window系统的同步实战 1. 远程数据同步工具rsync介绍 1.1 软件简介 rsync是一个远程数据同步工具,可通过lan/wan快速同步多台主机间的文件。rs...
其于window系统的同步实战
1. 远程数据同步工具rsync介绍
1.1 软件简介
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]
1. 远程数据同步工具rsync介绍
1.1 软件简介
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]
1