当前位置:首页 > 教育

rsync Rsync 备份服务实战

Rsync基本概述

Rsync是一款优秀的工具,开源、快速、多功能,可以实现本地或远程数据的完全和增量同步备份。Rsync软件适用于Unix/linux/Windows等操作系统平台。

Rsync简介

Rsync在英语中被称为远程同步。从软件名称可以看出,rsync具有本地主机和远程主机之间数据的快速复制、同步镜像和远程备份功能。这个功能类似于ssh的scp命令,但是优于scp命令。scp每次都是完整拷贝,而rsync可以进行增量拷贝。当然,rsync也可以在本地主机的不同分区或目录之间完整地复制数据,类似于cp命令。不过也优于cp命令。cp每次都是完整拷贝,而rsync可以进行增量拷贝。

同步数据时,默认情况下,rsync使用其独特的“快速检查”算法,该算法仅同步大小或上次修改时间已更改的文件或目录。当然,它也可以根据权限、所有者等属性的变化进行同步,但是需要制定相应的参数,甚至只能同步一个文件的更改内容部分,这样就可以实现备份数据的快速同步。

Rsync官方地址:TP

Rsync监听端口:873

同步运行模式:串行/并行

提示:使用rsync还可以删除文件和目录,相当于rm命令。一个rsync相当于scp、cp和rm,但它优于它们的每个命令。

Rsync的特性

支持复制特殊文件,如连接文件和设备。

可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。

它可以保留原始文件或目录的所有属性,如权限、时间、软链接和硬链接、所有者、组等。不变–p。

可以实现增量同步,只同步变化的数据,所以数据传输效率很高(tar-N)。

可以用rcp,rsh,ssh等。以配合文件传输(rsync本身不加密数据)。

您可以通过套接字(进程模式)传输文件和数据(服务器和客户端)* * * * * *。

支持匿名实时认证(无系统用户)流程模式传输,可以实现方便安全的数据备份和镜像。

生产场景架构的集群备份方案

1.使用cron+rsync将所有客户端服务器数据同步到备份服务器。

2.针对公司和领导重要数据备份混乱的情况,提出了全网数据备份的解决方案。

3.将备份打包到本地,然后rsync和inotify应用将整个网络备份到一个固定的存储服务器上,然后通过存储服务器上的脚本检查备份结果,并向管理员报警。

4.定期将IDC机房的数据备份到公司内部服务器,防止机房地震、火灾造成数据丢失。

5.实时同步解决单点问题,如存储服务器。

备份类型介绍

完全备份增量备份

假设客户机上有一个文件1文件2文件3文件,服务器上有一个文件1文件。现在,将客户机上的数据备份到服务器上

完全备份,将客户机文件1文件2文件3的所有数据内容备份到服务器(效率低,占用空)

增量备份:文件2文件3从客户端增量备份到服务器(提高备份效率,节省空,适合异地备份)

Rsync的应用场景

Rync的数据同步模式

1.push:所有主机将本地数据推送到Rsync备份服务器,这将导致数据同步缓慢(适合少量数据备份)

2.拉:rsync备份服务器拉所有主机上的数据,会导致备份服务器花很多钱

3.大量服务器备份场景

4.实现远程备份的思路

Rsync传输模式

Rsync使用三种主要的数据传输方法

本地模式

远程方式

精灵

本地传输模式

本地单个主机之间的数据传输(此时类似于cp命令)

#本地复制数据命令

本地:rsync [OPTION...] SRC...[DEST]

#本地复制数据示例

[root @ backup ~]# rsync-avz/etc/passwd/tmp/

Rsync #备份命令(cp)

[选项] #选项

科学研究委员会(Science Research Council的缩写)...#本地源文件

[DEST] #本地目标文件

远程传输模式

通过ssh通道传输数据,类似scp命令

#pull pull数据命令

Pull: rsync [OPTION...][用户@]主机:SRC...[DEST]

#拉取数据示例

[root @ backup ~]# rsync-avzroot @ 172 . 16 . 1 . 41:/etc/hostname。/#提取远程文件

[root @ backup ~]# rsync-avzroot @ 172 . 16 . 1 . 41:/root//backup/#提取远程目录中的所有文件

[root @ backup ~]# rsync-avzroot @ 172 . 16 . 1 . 41:/root/backup/#拉远程目录和目录中的所有文件

拉#拉,下载

Rsync #备份命令

[选项] #选项

[用户@] #目标主机的系统用户

主机#目标主机IP地址或域名

科学研究委员会(Science Research Council的缩写)...#目标主机源文件

[DEST] #从哪里下载

#推送推送数据命令

推送:rsync [OPTION...] SRC...主持人:DEST

#推送推送数据示例

rsync-avz/backup/2018-10-01 root @ 172 . 16 . 1 . 41:/tmp/

推送#推送,上传

Rsync #备份命令

[选项] #选项

科学研究委员会(Science Research Council的缩写)...#本地源文件

[用户@] #目标主机的系统用户

主机#目标主机IP地址或域名

[DEST] #目标映射位置

Rsync用SSH协议同步数据的缺陷

1.使用系统用户(不安全)2.使用普通用户(会导致权限不足情况)

守护进程的传输模式

Rsync本身是一个非常重要的功能(不使用系统用户更安全)

#pull pull数据命令

Pull: rsync [OPTION...] [USER@]HOST::SRC...[DEST]

#1.将rsync备份服务的“备份模块”数据拉到本地/mnt目录

[root @ nfs01 ~]# rsync-avz rsync _ backup @ 192 . 172 . 16 . 1 . 41::backup//mnt/-password-file =/etc/rsync . password

Rsync #命令

[选项...] #选项

[用户@] #远程主机用户(虚拟用户)

主机::#远程主机地址

科学研究委员会(Science Research Council的缩写)...#远程主机模块(不是目录)

[DEST] #本地备份远程主机数据的位置

#推送推送数据命令

推送:rsync [OPTION...] SRC...[用户@]主持人:DEST

#2.将本地/mnt目录推送到rsync备份服务器的备份模块

[root @ nfs01 ~]# rsync-avz/mnt/rsync _ backup @ 192 . 172 . 16 . 1 . 41::backup/-password-file =/etc/rsync . password

Rsync #命令

[选项...] #选项

科学研究委员会(Science Research Council的缩写)...#远程主机模块(不是目录)

[用户@] #远程主机用户(虚拟用户)

主机::#远程主机地址

[DEST] #本地备份远程主机模块的位置

对应于Rsync命令的选项

-a #存档模式传输,等于-tropgDl

-v #详细模式输出、打印速率、文件数量等。

-z #在传输过程中被压缩以提高效率

-r #递归传输目录和子目录,即目录下的所有目录都以相同的方式传输。

-t #保留文件时间信息

-o #保留文件所有者信息

-p #维护文件权限

-g #保留文件组信息

-l #保持软连接

-P #显示同步过程和传输进度等信息

-D #保留设备文件信息

-L #保留软连接指向的目标文件

-e #使用的通道协议,并指定要替换rsh的shell程序

-exclude = PATTER #指定排除不需要传输的文件模式

-exclude-from = file #文件名所在的目录文件

- bwlimit=100 #限速变速器

-部分#断点延续

- delete #使目标目录和源目录数据一致

-密码-文件= XXX #使用密码文件

Rsync服务实践

主机角色外部网IP(广域网)内部网IP(局域网)主机名Rsync服务器10.0.0.41172.16.1.41备份Rsync客户端10.0.0.31172.16.1.31nfs

安装Rsync

[root @ backup ~]# yum-y install rsync

配置Rsync

[root @ backup ~]# cat/etc/rsyncd . conf

uid = rsync

gid = rsync

端口= 873

假super =是

使用chroot = no

最大连接数= 200

超时= 600

忽略错误

只读=假

list = false

auth users = rsync_backup

机密文件= /etc/rsync.passwd

日志文件= /var/log/rsyncd.log

#####################################

[备份]

comment =欢迎使用oldboyedu backup!

路径= /backup

-详细配置

[root @ backup ~]# vim/etc/rsyncd . conf

Uid = rsync #运行进程的用户

Gid =运行该进程的rsync #用户组

端口= 873 #监听端口

false super = yes # rsync不需要以root身份运行,并且允许接收文件的完整属性

用chroot = no #将推送的数据禁锢到某个目录,不允许跳出该目录

最大连接数= 200 #最大连接数

超时= 600 #超时

忽略错误#忽略错误消息

只读=假#读写备份数据

List = false #不允许查看模块信息

Authussers = rsync _ backup #将虚拟用户定义为连接身份验证用户

机密文件= /etc/rsync.passwd #定义rsync服务用户连接身份验证密码文件路径

[备份] #定义模块信息

注释=提交#模块注释信息

Path = /backup #定义接收备份数据目录

创造用户

创建用户标识以运行rsync服务

#1)创建rsync帐户,不允许登录,并且不创建主目录

[root @ backup ~]# user add-M-s/sbin/nologin rsync

#2)创建一个备份目录(在磁盘之间尽可能大空),并授权rsync用户作为所有者

[root@backup ~]# mkdir /backup

[root @ backup ~]# chown-R rsync . rsync/backup/

虚拟用户配置

创建一个虚拟用户密码文件,并授权600个安全权限(针对客户端连接时使用的用户)

[root @ backup ~]# echo " rsync _ backup:zls " >/etc/rsync.passwd

[root @ backup ~]# chmod 600/etc/rsync . passwd

进程管理

启动rsync服务,并将rsync添加到引导自启动

[root @ backup ~]# system CTL start rsyncd

[root @ backup ~]# system CTL enable rsyncd

检查端口

[root@backup ~]# netstat -lntup

活动的互联网连接(仅限服务器)

原接收方发送方本地地址外地地址状态工艺流程图/程序名称

TCP 0 0 0 . 0 . 0 . 0:873 0 . 0 . 0 . 0:* LISTEN 4758/rsync

客户端配置

Rsync客户端只需配置虚拟用户的密码,并授权为600安全权限

#方法1:适合终端执行指定的用户密码文件

[root @ nfs01 ~]# yum install rsync-y

[root@nfs01 ~]# echo "zls " >/etc/rsync.pass

[root @ nfs01 ~]# chmod 600/etc/rsync . pass

#模式2:用于脚本,强烈推荐

[root @ nfs01 ~]# export RSYNC _ PASSWORD = zls

实战一

客户端将备份目录中的所有内容推送到Rsync服务器

[root @ nfs01 ~]# export RSYNC _ PASSWORD = zls

[root @ nfs01 ~]# rsync-avz/backup/rsync _ backup @ 172 . 16 . 1 . 41::backup/

实战二

客户端将Rsync服务器的备份模块数据拉至本地客户端的/备份目录

[root @ nfs01 ~]# export RSYNC _ PASSWORD = zls

[root @ nfs01 ~]# rsync-avz rsync _ backup @ 172 . 16 . 1 . 41::backup/backup/

实战三

Rsync实现了无差异的数据同步

#拉远程数据:远程数据与本地数据一致。如果远程数据中没有本地数据,它将被删除,导致客户端数据丢失

[root @ nfs01 ~]# export RSYNC _ PASSWORD = zls

[root @ nfs01 ~]# rsync-avz-delete rsync _ backup @ 172 . 16 . 1 . 41::backup//data/

#将数据推送到远程端:本地端和远程端一致。如果本地没有远端,则会被删除,导致服务器端数据丢失

[root @ nfs01 ~]# export RSYNC _ PASSWORD = zls

[root @ nfs01 ~]# rsync-avz-delete/data/rsync _ backup @ 172 . 16 . 1 . 41::backup/

实战四

同步的极限速度限制

#企业案例:当数据库管理员使用rsync提取备份数据时,内部交换机的带宽被覆盖,因为文件太大,导致用户的请求没有响应

[root @ nfs01 ~]# export RSYNC _ PASSWORD = zls

[root @ nfs01 ~]# rsync-avz-bwlimit = 1 rsync _ backup @ 172 . 16 . 1 . 41::backup//data/

Rsync备份案例

web01、backup、nfs三种服务器的主机信息见下表:

角色extranet IP(WAN) intranet IP(LAN)主机名web eth 0:10 . 0 . 0 . 7 etp:172 . 16 . 1 . 7 web 01n fset 0:10 . 0 . 0 . 31 etp:172 . 16 . 1 . 31 ns 01 sync eth 0:10 . 0 . 0 . 31 etp

客户要求

1.客户端提前准备好备份的目录,目录规则如下:/backup/NFS _ 172 . 16 . 1 . 31 _ 2018-09-02

2.客户端将备份打包到本地(系统配置文件、应用程序配置等)。)并将其复制到/backup/NFS _ 172 . 16 . 1 . 31 _ 2018-09-02

3.客户端最终将备份数据推送到备份服务器

4.客户端每天凌晨1点定期执行脚本

5.客户端服务器将过去7天的数据保存在本地,以避免浪费磁盘空

服务器要求

1.服务器部署rsync来接收客户端推送的备份数据

2.服务器需要每天检查客户端推送的数据是否完整

3.服务器需要每天将验证结果通知管理员

4.服务器只保留6个月的备份数据,并删除其余数据

注意:所有服务器的备份目录必须都为/backup

建议备份的数据内容如下:

#1.引导自启动配置文件设备安装配置文件本地内部网配置文件(系统配置文件)

/etc/RC . local/etc/fstab/etc/hosts

#2.cron预定任务防火墙防火墙脚本目录(重要目录)

/var/spool/cron//etc/firewalld/server/s

#3.系统日志文件

/var/log/ //系统安全日志、sudo日志、内核日志、rsyslog

#4.应用服务配置文件nginx,PHP,mysql,redis.....

1.实现客户端备份的想法,脚本定期在每天早上01: 00执行(打包->:标记->:推送->:保存最近7天的文件)

[root @ NFS]# cat/server/s/client _ rsync _ backup . sh

#!/usr/bin/bash

#1.定义变量

PATH =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

主机=$(主机名)

addr = $(ifconfig etp | awk ' NR = = 2 { print $ 2 } ')

日期=$(日期+%F)

Dest=${Host}_${Addr}_${Date}

路径=/backup

#2.创建备份目录

[-d $ Path/$ Dest]| | mkdir-p $ Path/$ Dest

#3.备份相应的文件

CD/& amp;& amp

[-f $ Path/$ Dest/system . tar . gz]| | tar czf $ Path/$ Dest/system . tar . gz etc/fstab etc/rsyncd . conf & amp;& amp

[-f $ Path/$ Dest/log . tar . gz]| | tar czf $ Path/$ Dest/log . tar . gz var/log/messages var/log/secure & amp;& amp

#4.携带md5认证信息

[-f $ Path/$ Dest/flag]| | MD5 sum $ Path/$ Dest/* . tar . gz & gt;$路径/$目标/标志_ $日期

#5.将本地数据推送到备份服务器

导出RSYNC_PASSWORD=zls

rsync-avz $ Path/rsync _ backup @ 172 . 16 . 1 . 41::backup

#6.将过去7天的数据保存在本地

查找$ Path/-类型d -mtime +7|xargs rm -rf

2.客户端编写一个计划任务,使备份在每天凌晨1点执行

[root@nfs01 ~]# crontab -l

00 01 * * */bin/bash/server/s/backup _ rsync . sh & amp;>。/dev/null

3.服务器验证客户端推送的数据的完整性(验证-->:存储验证结果-->:通过电子邮件将保存的结果发送给管理员-->:保留最后180天的数据)

#1.服务器配置邮件功能

[root @ backup/]# yum install mailx-y

[root@backup /]# vim /etc/mail.rc

设定from=253097001@qq.com

set SMTP = SMTP s://SMTP . QQ . com:465

设定smtp-auth-user=253097001@qq.com

设置SMTP-授权-密码=#客户端授权码

设置SMTP-auth =登录

设置SSL-verify =忽略

设置nss-config-dir=/etc/pki/nssdb/

#2.服务器验证和电子邮件通知脚本

[root @ backup ~]# mkdir/server/s-p

[root @ backup ~]# vim/server/s/check _ backup . sh

#!/usr/bin/bash

#1.定义全局变量

export PATH =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

#2.定义局部变量

路径=/backup

日期=$(日期+%F)

#3.检查标志文件,验证文件,然后将验证结果保存到result_ time

查找$ Path/-键入f-name " flag _ $ Date“| xargs MD5 sum-c & gt;$路径/结果_ $ {日期}

#4.通过电子邮件将验证结果发送给管理员

邮件“同步备份$日期”123@qq.com & lt;$路径/结果_ $ {日期}

#5.删除超过7天的验证结果文件和超过180天的备份数据文件

find $ Path/-type f-name " result * "-mtime+7 | xargs RM-f

查找$ Path/-类型d -mtime +180|xargs rm -rf

4.服务器编写计划任务的脚本

[root@backup backup]# crontab -l

00 05 * * */bin/bash/server/s/check _ backup . sh & amp;>。/dev/null

5.如何扩展多台服务器的备份?

[root @ NFS ~]# rsync-avz/server 172 . 16 . 1 . 7:/

Rsync与inotify结合[扩展]

1.安装inotify

yum -y安装inotify-tools

2.2.inotify参数的描述

-m连续监控

-r递归

-q静音,仅打印时间信息

- timefmt指定输出时间格式

- format指定事件输出格式

%Xe事件

%w目录

%f文件

-e指定监控的事件

访问访问

修改内容修改

属性修改

Close_write修改真实文件内容

打开打开

创建创建

删除删除

卸载卸载

3.命令测试

/usr/bin/inotifywait-mrq-format“% Xe % w % f”-e创建、修改、删除、属性、close_write /backup

4.剧本写作

[root @ backup ~]# vim rsyn-inotify . sh

#!/bin/bash

dir=/backup

/usr/bin/inotifywait-mrq-format“% w % f”-e create,delete,attrib,close _ write $ dir | while read line做

cd $dir &。& amprsync -az -R - delete。rsync _ backup @ 172 . 16 . 1 . 31::backup-password-file =/etc/rsync . passwd & gt;/dev/null 2>。& amp一个

完成&。

1.《rsync Rsync 备份服务实战》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《rsync Rsync 备份服务实战》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1249091.html

上一篇

吃鸡低配版下载 祝贺《绝地求生》低配版下载官网正式上线!

下一篇

美容器 美容仪那么贵,千万别踩坑,30秒教你选到最适合你的!!

荒谬绝伦!所谓涉疆数据库是造假库谣言库伪证库 究竟发生了什么?

荒谬绝伦!所谓涉疆数据库是造假库谣言库伪证库 究竟发生了什么?

一些国家的政府政客、组织、媒体甚至还寡廉鲜耻地将一些“演员”奉为座上宾,颁发所谓的奖项,给他们涂上“人权卫士”色彩,并据此给新疆扣上“反人类罪”“种族灭绝”的帽子,简直是荒谬绝伦。...

典型相关分析 R语言典型相关分析:NBA球员身体素质与统计数据关联性

数据科学从业者的研究日记。数据挖掘与机器学习,R与Python,理论与实践并行。个人微信官方账号:数据科学家发展(微信ID: louwill 12) 昨天备受期待的2017年NBA总决赛G1,我相信你们JRs都看过吧?不是骑士不尽力,而是对面有...

vb数据库编程 进阶篇-立志做PLC圈子里的IT大拿 | 利用VB编写程序显示数据库数据

JZGKCHINA 写在前面 在最后一节,我们用VB写了一个小程序“启蒙——立志成为PLC圈的IT领袖|用VB写程序读取PLC数据”,用来读取RSLinx软件的变量并记录在数据库中。 现在你需要的数据静静的躺在数据库里,等待你的运气。这个时候老...

同步热分析仪 同步热分析仪STA数据报告

同步热分析仪 同步热分析仪STA数据报告

检查报告 委托人:XXXXXX 检测单位:上海和盛仪器科技有限公司 测试人:何胜仪器日期:2016。十.二十  实验参数 姓名:XX 扫描速率(℃/分钟):10 二手仪器:HS-STA-002综合热分析仪...

微信用户 微信官方第一次公开课微信用户数据

  • 微信用户 微信官方第一次公开课微信用户数据
  • 微信用户 微信官方第一次公开课微信用户数据
  • 微信用户 微信官方第一次公开课微信用户数据
荒谬绝伦!所谓涉疆数据库是造假库谣言库伪证库 具体是什么情况?

荒谬绝伦!所谓涉疆数据库是造假库谣言库伪证库 具体是什么情况?

一些国家的政府政客、组织、媒体甚至还寡廉鲜耻地将一些“演员”奉为座上宾,颁发所谓的奖项,给他们涂上“人权卫士”色彩,并据此给新疆扣上“反人类罪”“种族灭绝”的帽子,简直是荒谬绝伦。...

xs52 深圳企业成功破解苹果数据线:实现iPhone XS快充

深圳某公司成功破解了苹果的USB-C到Lightning数据线,实现了快速充电。如图,给iPhone XS充电达到8.91V 1.74A,功率15.56W左右,这是苹果上一次封禁山寨快充线后,企业第二次宣布成功破解USB-C到Lightning...

bt核 速来围观P2P大文件分发技术 BT内核的应用

bt核 速来围观P2P大文件分发技术 BT内核的应用

下面给大家分析一下P2P大文件分发技术和为企业定制开发的BT内核。其实P2P分发技术回望历史悠久,但真正在国内流行起来,还是因为“快播事件”。后来,“P2P”这个词就成了网贷行业的代名词。然而,事实上,P2P从本质上来说是一种非常伟大的技术产品...