Rsync同步备份服务器数据解决方案
来源:Leah 时间:2022-05-27 13:35:47阅读:0
一、rsync概述
rsync是linux快速增量备份工具用于系统下的数据镜像备份工具remotesync可远程同步,可在不同主机之间同步,可实现全备份和增量备份,保持链接和权限,采用优化同步算法,传输前压缩,非常适合架构集中备份或异地备份rsync支持本地复制或其他ssh、rsync主机同步。
二、rsync特性和有点
1)整个目录树和文件系统可以镜像保存
2)保持原始文件的权限、时间、软硬链接等都很容易。
3)安装无特殊权限
4)快速:第一次同步rsync复制所有内容,但将修改后的内容传输到下一个值
5)压缩传输:rysnc压缩和解压操作可在传输过程中进行,可使用较少的带宽
6)安全:可以使用scp、ssh等待文件传输
7)支持匿名传输,方便网站镜像
8)选择性维护:符号链接、硬链接、文件属性、权限、时间等
三、rync原理
1、操作模式和端口
1)采用C/S模式(实际上是点到点传输,直接使用rsync命令可以完成)
2)rsync监控端口为:873
2、解释四个名字
1)发起人:负责发起rsync同步操作的客户端称为启动端。我想通知服务器备份您的数据
2)备份源:客户端负责响应rsync需要备份的服务器称为备份源
3)服务:运行rsyncd一般来说,服务器需要备份
4)客户端:存储备份数据。
3、数据同步模式
1)推push:一台主机负责将数据传输给其他主机,服务器成本高,更适合后端服务器少的情况
2)拉pull:所有主机定期找到主机拉数据,可能会导致数据缓慢
推:目的主机配置为rsync服务器,源主机周期性的使用rysnc命令将要同步的目录推过去(需要备份的机器是客户端,存储备份的机器是服务端)
拉:源主机配置为rysnc定期使用定期使用服务器rync命令拉过要同步的目录(需要备份的机器是服务端,存储备份的机器是客户端)
四、rsync服务安装
1、由于rsync服务依赖xinetd服务,是使用超级服务来管理的,因此需要在目标机器上安装xined、rsync服务端
需要安装两台服务器:
xuegod200是源主机;xuegod210是目标主机
[root@xuegod200~]#yum-yinstallxinetdrsync
[root@xuegod210~]#yum-yinstallxinetdrsync
[root@xuegod210~]#rsync--daemon#启动防护过程
[root@xuegod210~]#netstat-antup|greprsync#查看rsync是否监控端口
tcp000.0.0.0:8730.0.0.0:*LISTEN1706/rsync
tcp600:::873::?LISTEN1706/rsync
2、rsynv命令选项
(1)-a:–archivearchivemode相当于权限保存模式-rlptgoD参数、归档、递归、保持属性等。
(2)-r:–recursive复制以下所有信息,递归处理。
(3)-p:–perms保留档案权限,文件的原始属性。
(4)-t:–times保留时间点,文件原始时间。
(5)-g:–group保留原属组。
(6)-o:–owner保留档案所有者(rootonly)。
(7)-D:–devices保留device资讯(rootonly)。
(8)-l:–links复制所有连接,复制连接文件。
(9)-z:–compress压缩模式,当数据传输到目的端进行文件压缩时。
(10)-H:–hard-links保留硬链接文件。
(11)-A:–acls保留ACL属性文件,需要配合–perms。
(12)-P:-P参数和--partial--progress同样,只是为了简化参数,表示传输进度。
(13)--version:输出rsync版本。
(14)-v:–verbose复杂的输出信息。
(15)-u:–update仅更新,即跳过现有的目标位置,文件时间晚于备份文件,不覆盖新文件。
(16)--port=PORT:定义rsyncd(daemon)要运行的port(预设为tcp873)。
(17)--delete:删除目标位置有些文件,备份源没有的文件。
(18)--password-file=FILE:从指定的密码文件中获取密码。
(19)--bwlimit=KBPS:限制I/O带宽。
(20)--filter“-filename需要过滤的文件。
(21)--exclude=filname:需要过滤的文件。
(22)--progress:显示备份过程。
注:常用的选项–avz
-z命令通常用于压缩小文件。数据量大的文件在传输过程中相对较慢。如果再次压缩,传输速度将更慢。因此,根据需要选择是否需要添加此参数
五、使用rsynv备份数据
例1:对xuegod63网站根目录/网站根目录/var/www/html目录备份到xuegod64的/web-back
服务器:xuegod63
客户端:xuegod64
步骤:
1、建立测试用户并添加密码(两个主机都需要操作)
[root@xuegod200~]#useraddrget1&&echo“123456”|passwd--stdinrget1
[root@xuegod210~]#useraddrget1&&echo“123456”|passwd--stdinrget1
2、创建/var/www/html目录,使用acl在不修改原属组和属主的情况下,增加目录rget1的rwx
[root@xuegod200~]#mkdir-p/var/www/html
[root@xuegod200~]#setfacl-R-muser:rget1:rwx/var/www/html
[root@xuegod200~]#setfacl-R-mdefault:rget1:rwx/var/www/html
[root@xuegod200~]#getfacl/var/www/html/
3、cp备份数据
[root@xuegod200~]#cp-r/boot/*/var/www/html/
[root@xuegod200~]#ll!$
4、到xuegod64创建备份目录并授权rget1用户权限
[root@xuegod210~]#mkdir/web-back
[root@xuegod210~]#chownrget1:/web-back/
[root@xuegod210~]#ll/web-back/-d
drwxr-xr-x2rget1rget165月1323:16/web-back/
5、使用rsync命令复制数据
使用rget1复制用户
[root@xuegod200~]#rsync-avz/var/www/html/rget1@xuegod210:/web-back/#回车后输入对端密码
6、使用虚拟用户备份数据
1、rsync详细说明配置文件参数
注释:centos7安装命令后自动生成,centos6配置文件需要在不自动生成的情况下手动创建
1)rsyncd.conf配置文件:
配置文件分为全局参数和模块参数两部分。
全局参数:对rsync如果模块参数与全局参数冲突,则服务器生效。
模块参数:需要定义rsync定义输出目录的参数。
2)全局参数模块:
port#默认情况下,指定后台程序使用的端口号为873。
uid#该选项指定了模块传输文件时应具备的保护过程uid,配合gid默认值是选项使用可以确定哪些文件权限可以访问"nobody"。
gid#该选项指定了模块传输文件时应具备的保护过程gid。默认值为"nobody"。
maxconnections#指定该模块的最大并发连接数量以保护服务器,并告知超过限制的连接请求,然后再次尝试。默认值为0,即无限制。
lockfile#指定支持maxconnections默认值为/var/run/rsyncd.lock。
motdfile#"motdfile"参数用于指定消息文件,当客户连接到服务器时,文件的内容显示给客户,默认情况下没有motd文件的。
logfile#"logfile"指定rsync而不是发送日志文件syslog。
pidfile#指定rsync的pid文件通常指定为//var/run/rsyncd.pid存储过程ID文件位置。
hostsallow=#单个IP允许访问的客户机地址或网络地址。
3)常见的模块参数:
该服务器的格式必须以[共享模块名]的形式定义,这个名是在rsync客户端看到的名字其实很像samba服务器提供的共享名称。服务器真正同步的数据是通过的path来指定的。
|Comment |#在客户连接到模块列表时,向客户显示与模块名相连的描述。默认情况下没有描述定义。
path#必须指定该模块的备份目录树路径。
readonly#yes只允许下载,no将文件下载并上传到服务器上。
exclude#添加多个文件或目录(相对路径),用于指定由空间隔开的多个文件或目录exclude列表中。这相当于在客户命令中使用―exclude或----filter不下载或上传某些文件或目录(既不可访问)
excludefrom#指定一个包含exclude服务器从该文件中读取模模文件名exclude列表定义,每个文件或目录需要占用一行
include#不排除符合要求的文件或目录。这相当于在客户命令中使用–include指定模式,组合include和exclude复杂的exclude/include规则。
includefrom#指定一个包含include服务器从该文件中读取模模文件名include列表定义。
authusers#该选项指定了由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户与系统用户无关"authusers"如果设置了,客户端在发出模块连接请求后会被接受rsync请求challenged这里使用验证身份challenge/response认证协议。用户的名称和密码以明存储"secretsfile"在选项指定的文件中。在默认情况下,模块(即匿名)可以无需密码连接。
secretsfile#该选项指定了包含定义用户名的文件:密码对。只有在"authusers"文件只有在被定义时才能工作。每行包含一个文件username:passwd是的。一般来说,密码最好不要超过8个字符。没有默认securesfile注:文件的权限必须为600,否则客户端将无法连接到服务器。
hostsallow#指定哪些IP允许客户连接模块。定义可以是以下形式:
单个IP例如:192.167.0.1,多个IP或者网段需要用空格隔开。
例如:192.168.0.0/24,也可以写成192.168.0.0/255.255.255.0
“*这意味着默认允许所有主机连接。
hostsdeny#指定不允许连接rsync可使用服务器机hostsallow定义的方法。默认不是hostsdeny定义。
list#当客户要求使用模块列表时,应列出该选项。如果该选项设置为false,隐藏的模块可以创建。默认值是true。
timeout#可覆盖客户指定的选项IP时间过长。这个选项可以保证rsync服务器不会永远等待崩溃的客户端。加班单位为秒,0表示没有加班定义,这也是默认值rsync服务器来说,一个理想的数字是600
2、例:用配置文件定义目录输出
1)修改rsync配置文件
[root@xuegod210etc]#catrsyncd.conf|grep-v“$ |#”
uid=root#操作过程的身份
gid=root#运行过程组
address=192.168.11.210#监听的IP本服务器的地址IP地址,写错会无法启动rsync服务
port=873#监听端口
hostsallow=192.168.11.0/24#允许同步客户端的白名单IP地址,但网段或IP地址,*表示所有IP
usechroot=yes#其他目录锁定后是否无法修改
maxconnections=5#最大链接数
pidfile=/var/run/rsyncd.pid#进程PID自动生成文件
lockfile=/var/run/rsync.lock#maxconnections锁定参数文件
logfile=/var/log/rsyncd.log#rsync日志文件位置
motdfile=/etc/rsyncd.motd#需要手动创建登录提示信息
[wwwroot]#共享模块名称
path=/web-back/#路径,储存路径
comment=usedforweb-dataroot#描述信息
readonly=false#设置服务端文件的读写权限
list=yes#是否允许查看模块信息
authusers=rsyncuser#虚拟用户
secretsfile=/etc/rsync.passwd#需要手动创建密码文件。格式:用户名:密码
2)创建相关文件,修改文件权限
创建提示信息文件
[root@xuegod210etc]#echo“WelcometoBackupServer”>
/etc/rsyncd.motd
[root@xuegod210~]#chmod600/etc/rsyncd.motd
创建密码文件
[root@xuegod210etc]#echo“rsyncuser:password123”>/etc/rsync.passwd
[root@xuegod210~]#chmod600/etc/rsync.passwd#修改密码文件的权限
3)启动服务(启动rsync和xinetd服务)
[root@xuegod210etc]#systemctlstartxinetd
[root@xuegod210etc]#systemctlenablexinetd
[root@xuegod210etc]#rsync--daemon--config=/etc/rsyncd.conf#加载配置文件
[root@xuegod210etc]#!nets
netstat-antup|greprsync
tcp000.0.0.0:8730.0.0.0:*LISTEN1706/rsync
4)测试
语法:rsync选项用户名@备份源服务器ip::共享模块目标目录
[root@xuegod200~]#rsync-avz/var/www/html/rsyncuser@xuegod210::wwwroot
5)密码处理
将密码保存在新文件中rsync命令中使用–password-file指定次文件即可
[root@xuegod200~]#echo“password123”>>/root/passwd
[root@xuegod200~]#chmod600passwd
[root@xuegod200~]#rsync-avz/var/www/html/rsyncuser@xuegod210::wwwroot--password-file=/root/passwd#指定文件
6)定时自动备份脚本
[root@xuegod200~]#vimautobackup.sh#编写脚本。
#!/bin/bash
rsync-avz/var/www/htmlrsyncuser@192.168.0.64::wwwroot–password-file=/etc/rsync.passwd
7)定义计划任务,实现定期备份
[root@xuegod63~]#echo“013***sh/root/autoback.sh&”>>/var/spool/cron/root
注释:
1、address监控地址,必须是rsync服务端地址
2、必须将创建的密码文件和登录提示文件的权限修改为600,否则将执行rsync命令会报错
六、rsync sersync实现数据实时同步
一台装sersync、一台装rsync服务
sersync服务器(数据源、源主机):192.168.11.200
sysnc客户端(备份端、目标机器):192。168.11.210
1、安装sersync安装包(上传rpm包装到服务器中,然后解压缩)
[root@xuegod200opt]#tarxf
sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@xuegod200opt]#mvGNU-Linux-x86/sersync#更改一个容易记住的名字
[root@xuegod200opt]#ls
rhsersyncsersync2.5.4_64bit_binary_stable_final.tar.gz
注意:sersync是二进制安装包,不需要直接安装tar解压后,可直接使用
[root@xuegod200opt]#cdrsync/
[root@xuegod200sersync]#ls#这两个文件都是可执行文件
confxml.xmlsersync2
2、配置sersync
[root@xuegod200sersync]#cpconfxml.xmlconfxml.xml.bak#在修改配置之前,先备份
2.1在配置文件中修改24–28行,如下所示。
[root@xuegod200sersync]#vimconfxml.xml
#本地同步数据目录。 #rsync模块名称
2.2修改31–34行,认证部分(rsync密码认证)
2.3由于配置文件需要调用密码文件,因此在服务端创建密码文件
[root@xuegod130html]#echopasswd123>/etc/rsync.passwd
[root@xuegod130html]#chmod600/etc/rsync.passwd
2.4开启serysnc守护过程同步数据
[root@xuegod200sersync]#/opt/sersync/sersync2-d-r-o
/opt/sersync/confxml.xml
3、测试
在200的/var/www/html查看210/web-back/目录的变化
[root@xuegod210web-back]#watchls-l
4、设置sersync自动执行监控启动
[root@xuegod200~]#vim/etc/rc.d/rc.local
[root@xuegod200~]#tail-1!$
tail-1/etc/rc.d/rc.local
/opt/sersync/sersync2-d-r-o/opt/sersync/confxml.xml
5、添加脚本监控sersync正常运行
[root@xuegod200~]#vim/opt/check_sersync.sh
[root@xuegod200~]#cat!$
cat/opt/check_sersync.sh
#!/bin/bash
sersync="/opt/sersync/sersync2"
confxml="/opt/sersync/confxml.xml"
status=$(psaux|grep‘sersync2’ |grep-v‘grep’ |wc-l)
if[$status-eq0];then
$sersync-d-r-o$confxml&
else
exit0
fi
6、将脚本添加到定期任务中,定义检查sersync是否正常
[root@xuegod200~]#crontab-e
nocrontabforroot-usinganemptyone
crontab:installingnewcrontab
[root@xuegod200~]#crontab-l
012***sh/opt/check_sersync.sh
微云网络提供Rsync同步备份服务器数据解决方案,详情请咨询客服400-028-9798,官网www.KD010.com
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
本站原创内容未经允许不得转载,或转载时需注明出处:https://news.kd010.com/fwqjs/10154.html
TAG标签:备份服务器