Rsync企业实战之异地自动化备份

Rsync企业实战之异地自动化备份,第1张

Rsync企业实战之异地自动化备份

认真的测试过网上的大多数文章和版本,真正能一次性测试通过的文章太少了,需要反复的推敲,反复的查阅资料,才能真正的测试成功,所以,在此背景下,总结了Rsync,加上自己的理解分享出来; 1、原理篇

Rsync, 如此命名,是一个远程数据同步工具,可以镜像整个目录树和文件系统,保留源文件的权限、时间和软硬链接,优化数据,删除文件的重复数据, 快速同步局域网和广域网之间多台主机的数据。这主要得益于Rsync的压缩及其核心算法,它是本地和远程主机之间的文件同步 并保持一致,只传输两个文件的不同部分而不是整个数据,所以速度非常快;

一台rsync服务器可以同时备份多台客户端的数据,也可以一台客户端备份多台Rsync服务器的数据;

Rsync支持scp、ssh和守护模式。默认端口是873。首次连接时,您将对数据进行完整备份。之后,所有备份都是增量备份,仅备份更改过的数据。

Rsync只支持单向备份,不支持双向。如果需要双向同步,可以使用Unison。如果需要实时同步,可以结合Rsync+inotify;;

Rsync服务以只读方式提供要备份的数据,以避免损坏生产环境中的数据;


这里有必要解释一下Rsync的核心算法:

假设您在两台名为α和β的计算机之间同步相似的文件A和B,其中α可以访问文件A,β可以访问文件B,并且假设主机α和β之间的网络带宽很小。那么Rsync算法将通过以下五个步骤来完成:

将β文件B分成一组不重叠的数据块,大小固定为s字节。最后一块可能小于S.
β对每个分段数据块进行两种校验:一种是32位滚动弱校验,一种是128位MD4强校验。
β将这些验证结果发送给α。
α搜索文件A中所有大小为S的数据块(偏移量可以是可选的,但不一定是S的倍数)寻找与文件b中某个块具有相同弱校验码和强校验码的数据块,借助滚动校验可以快速完成这项工作。
α向β发送一系列指令,在β上生成文件A的备份。这里的每条指令要么是证明文件B有某个数据块,不需要重传,要么是数据块,肯定不匹配文件B的任何数据块。

Rsync适用于linux、solaris和bsd。在windows平台下,有cwRsync。

本文将以Linux的Rsync和window的cwRsync为例。

2、Rsync服务端 2.1、安装

源代码安装

下载rsync服务器程序,

塔尔zxvfrsync-2.6.9.tar.gz

cdrsync-2.6.9

。/configure-prefix=/usr/local/rsync

制造

进行安装

rpm安装

yum安装rsync

本文随yum一起安装。

2.2、服务器运行模式

模式选择

对于重负载,选择独立服务来启动。

负载轻的,选择从xinet.d开始,选择这个模式,记得安装xinet.d(yuminstallxinet.d)。

独立运行模式

/usr/bin/rsync-daemon-config=/etc/rsyncd.conf(本例中选择了此方法)

如果需要启动系统,可以将上述命令添加到/etc/rc.local文件中。

2.3、服务器配置

创建配置文件和密码文件

触摸/etc/rsyncd.conf主配置文件

触摸/etc/rsync.pas密码文件。这个文件需要注意客户端和服务器的格式,后面会解释。

配置文件rsyncd.conf的说明

Rsync的配置文件分为两部分,全局配置和模块配置。

#全局设置

Uid=root指定模块以root用户身份传输文件。如果用户是匿名的,请在这里填写nobody。

Gid=root指定模块以root用户组的身份传输文件。如果是匿名的,请在这里填写“没有人”。

Usechroot=YES设置为YES,表示文件在传输之前,位于根目录,即PATH指定的目录。这样做主要是出于安全原因。

PIDfile=/var/run/rsyncd.PIDrsync守护进程将其PID写入文件。

锁文件=/var/run/rsync.lock指定支持最大连接数的锁文件。

logfile=/var/log/Rsyncd.log指定由rsync守护进程生成而不是传输到syslog的日志文件。

#模块设置

【金蝶】模块名,直接用于指定上传和下载文件时的配置。

Path=/sda1/JDdatabase指定了该模块的根目录,即所有文件上传和下载都在该目录下进行。

忽略错误指定在rsync服务器上运行删除 *** 作时是否忽略I/O错误。

Read=false指定是否允许上传,false表示允许上传。

Writeonly=false指定是否允许下载,false表示允许下载。

List=true指定当客户请求列出可用模块时,是否列出这些模块。如果为false,则可以创建一个隐藏模块。

HostAllow=192.168.1.65指定哪些客户端可以访问和连接到该模块。您可以指定单个IP、整个网段,例如本例中的单个IP。

Hostdeny=0.0.0.0/0指定不允许哪些客户端连接到此模块。这个例子是代表整个网络的0.0.0.0/0网段。

通常,客户端表示如下:

单个IP:192.168.1.65

Ip段:192.168.1.0/24

解析的主机地址:www.baidu.com

域名主机:*.wine9.com

所有主机:*

多个列表项,用空分隔;

Users=xy指定身份验证用户名,通常用空或逗号分隔。只有这些用户可以连接到此模块。用户名和密码以明文形式存储在密码文件中。

Syslogfacility=local5指定日志级别,一般指发送到rsyslog的日志级别;

Secretsfile=/etc/Rsync.pas指定Rsync身份验证密码文件。只有配置了authusers,此配置才会生效。这里要注意客户端和服务器的配置格式。

Ignorenonreadable指定rysnc服务器完全忽略那些用户无权访问的文件,当目录中有一些要备份的文件不应该由备份获取时,这非常有意义。

超时600设置客户端连接超时,以确保服务器不会永远等待崩溃的客户端。

Doncompress=*。gz指定了哪些文件在传输前不需要压缩。

Maxconnections=4指定此模块中的最大并发连接数为4。如果超过这个数字,告诉它,然后再试一次。

Exclude指定由空分隔的多个文件或目录(相对路径),并将它们添加到排除列表中。这相当于在客户端命令中使用–-exclude来指定模式。

排除自指定包含排除规则定义的文件名,服务器从中读取排除列表的定义。

Include指定由空分隔的多个文件或目录(相对路径),并将它们添加到包含列表中。这相当于在客户端命令中使用–-include来指定模式。

Includefrom指定包含包含规则定义的文件名,服务器从该文件名中读取包含列表的定义。

2.4、建立Rsync口令文件

创建密码文件

Touch/etc/Rsync.pas#密码文件,保存Rsync用户和密码验证信息,不需要是系统账号;

vi/etc/rsync.pas

Xy:abc123#的格式是用户名:密码,这个账号不需要是系统账号。

注意和后期客户端密码文件的格式比较。对比两者的区别,有很多童鞋很容易弄错。重要的事情说三遍。注意格式,注意格式,注意格式。

2.5、口令文件权限

密码文件,需要设置密码文件权限,这一步也很重要,而且Rsync对权限的要求很敏感。

#chownroot:root/etc/rsync.pas#root:root是指当前启动该服务并被设置为所有者的用户。

#chmod600/etc/Rsync.pas#指定启动这个Rsync服务的用户的权限是只读的,也就是前面提到的所有者权限。

3、Rsync客户端

本例中客户端选择windows的cwrsync工具,安装就不用说了。

3.1、创建口令文件

创建一个新的rsync.pas文件,并按如下方式添加它:

因为我使用的用户名是xy,所以这个设置的密码必须与服务器端rsync.pas密码文件中设置的密码相同。例如,本例中的密码是abc123

然后,在本例中,它被设置为:

abc123

3.2、口令文件权限

必须正确设置windows 密码文件的权限,否则验证将失败。密码文件c:\Rsync.pas的权限要添加到系统登录的账号读取权限中,并设置为文件的所有者 (这个和服务器端有点不同。正常情况下,服务器端的这个用户名应该是启动rsync服务的用户名,不管是windows还是liunx,但对于[/]

转到cwRsync客户端安装目录,c:\programfiles(x86)\cwRsync\bin。

chmod600/cygdrive/c/rsync.pas

chownadministrator/cygdrive/c/rsync.pas#如果没有Chown文件,可以直接从服务器端的安装目录的bin目录下复制过来使用。

注意:Rsync对路径的书写格式与windows不同,它遵循后缀书写格式,

3.3、同步文件

Rsync六种同步格式

Rsync完成服务器和客户端的配置后,下一步就是通过Rsync命令完成文件同步 *** 作,就像服务器发起命令请求一样。Rsync的功能非常强大,它提供了六种格式来支持Rsync的六种工作模式。

rsync[选项]...SRCDEST
rsync[选项]...SRC[USER@]主机:DEST
rsync[OPTION]...[USER@]主机:SRCDEST
rsync[选项]...[USER@]HOST::SRCDEST
rsync[OPTION]...SRC[USER@]HOST::DEST
rsync[选项]...rsync://[USER@]HOST[:PORT]/SRC[DEST]

对于上述六种命令格式,

1)rsync[选项]...SRC

复制本地文件,当SRC和DEST的路径信息不包含单个冒号“:”时,启动此工作模式。

rsync.exe—vzrtopg/数据/备份

2)rsync[选项]...SRC[USER@]主持人:DEST

使用远程shell程序(如rsh、ssh)将本地机器的内容复制到远程机器。当DST路径地址包含单个冒号“:”分隔符时,此模式启动。例如rsync-avz*。cfoo:src

3)rsync[选项]...[user@]host:srcdest
使用远程shell程序(如rsh、ssh)将远程机器的内容复制到本地机器。当SRC地址路径包含单个冒号“:”分隔符时,此模式启动。例如rsync-avzfoo:src/bar/data

4)rsync[选项]...[user@]host::srcdest
将文件从远程rsync服务器复制到本地机器。当SRC路径信息包含“::”分隔符时,启动此模式。例如rsync-avroot@172.16.78.192::www/databank,其中www是rsync配置文件中指定的模块名称。

5)rsync[选项]...src[user@]host::dest
将文件从本地机器复制到远程rsync服务器。当DST路径信息包含“::”分隔符时,启动此模式。例如:rsync-av/databackroot@172.16.78.192::www,其中www是rsync配置文件中指定的模块名称。

6)rsync[选项]...rsync://[user@]host[:port]/src[dest]
远程机器的列文件列表。这类似于rsync传输,只是命令中省略了本地机器信息。例如rsync-vrsync://172.16.78.192/www

上传同步文件

rsync.exe-vzrtopg-progress-delete/cygdrive/c/test/*。txtxy@192.168.31.13::Jindie-password-file=/cygdrive/c/rsync.pas

解释:

rsync同步指挥。

Vzrtopg指定传输的参数和细节;

-delete删除DST中存在但SRC中不存在的文件或目录。

/cygdrive/c/test/*。txt注意这里的格式。不能用windows的格式,必须用POSTFIX标准格式;

Xy@192.168.31.13::金蝶Xy是对服务器有访问权限的用户名,192.168.31.13是服务器地址,金蝶是服务器端配置文件中指定的模块,其中指定了用户信息和同步路径;服务器地址和模块由两个冒号分隔。

-password-file=/cygdrive/c/rsync.pas密码文件,其中包含xy帐户的密码,该密码与服务器端配置文件rsyncd.conf中指定的密码文件中设置的密码相同

下载同步文件

rsync.exe-vzrtopg-progress-deletexy@192.168.31.13::Jindie/cygdrive/c/test-password-file=/cygdrive/c/rsync.pas

通常因为上传和下载的方向不同,直接改变源文件的路径和目的地址的路径就可以了。

4、定时同步备份

将上述命令写入批处理机文件,如test.bat,通过任务计划实现定时备份。

c:\ProgramFiles(x86)\cwRsync\bin

rsync.exe-vzrtopg-progress-delete/cygdrive/c/test/*。txtxy@192.168.31.13::Jindie-password-file=/cygdrive/c/rsync.pas

复制上面的命令并保存在test.bat文件中,

开始-所有程序-附件-系统工具-任务计划程序

展开任务计划程序库-Microsoft,然后右键单击创建基本任务。

创建基本任务向导,输入“名称”

点击“下一步”

任务触发,根据实际需要,设置每日、每周、每月同步。这里我选择每日备份,可以减少带宽压力。

设置每天的开始时间。在这里,将每天的开始时间设置为凌晨1:00,然后单击“下一步”

选择“开始程序”

浏览并选择脚本文件。

点击“完成”

至此,部署已经完成。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/778410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存