zoukankan      html  css  js  c++  java
  • day 28 综合架构备份服务

    1 rsync备份服务前言说明

      01 搭建备份服务作用

          1)数据备份的服务器

          2)进行日志统一保存

      02 搭建备份服务意义

          1)保证数据不会丢失

          2)便于数据进行恢复

          3)便于进行数据比对

      03 备份工作如何完成

          1)数据进行定时备份(crond定时任务)

          2)数据进行实时备份

      04 什么是rsync服务

          rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具

    2 rsync备份服务概念介绍

      01 rsync命令使用介绍

        rsync命令是一个1v4的命令,一条命令可以干4条命令的事

        1)本地备份数据 cp

          本地备份数据  cp==rsync

          

         2)远程备份数据 scp

          scp命令用于不同主机之间的复制文按键,他采用ssh协议来保证复制的安全性.scp命令每次都是全量复制,因此效率不高,适合第一次复制时使用,增量复制建议使用rsync命令替代

          命令常用格式:

            推送(从本地服务器复制到远程服务器)文件或目录(推送push)

              scp -rp(人品) /文件 用户名@主机(地址):/要备份到的目录

            从远程服务器将数据复制到本地服务器(拉取pull)

              scp -rp 用户名@主机(地址):/要备份到的目录 /文件

            -C    压缩传输

            -l    指定传输占用带宽,单位Kbit/s

            -P    大写的P,指定传输的端口号 ******

            -p    小写的p,传输后保留文件原始属性  ******

            -q    不显示传输进度条

            -r    递归复制整个目录 ******

          远程备份数据  scp==rsync

          scp远程备份

          

           rsync远程备份(rsync的参数跟scp有一定差别)

          

             rsync远程备份时注意事项:备份目录后面有没有/

            备份目录后面没有 /      会将目录本身及下面的内容进行传输

            

             备份目录后面有 /      只将目录下面的内容进行备份传输.目录本身不会传输

            

             总结: 在使用rsync备份目录时:
                备份目录后面有  / -- /oldboy/ : 只将目录下面的内容进行备份传输
                备份目录后面没有/ -- /oldboy  : 会将目录本身以及下面的内容进行传输

        3)替换删除命令 rm

        

         企业应用:如何删除一个大的文件或者目录

          如上所述.对于一个大目录来说,利用rm 命令删除的时候,往往伴随效率低下,无法删除的问题,此时利用上面的命令可解决

           rsync -rpP -e "ssh -p 52113" --delete /null/ 172.16.1.41:/backup
            注意事项: 1. 首先需确认系统中有没有/null/  若有序确认是否是空目录  若没有则创建

                   2.-e 参数适用于更改了ssh端口的情况,若没有更改此处无需加

                 3.-P 此参数是用来观察传输过程的,特别是对于远程操作时,便于观察传输是否正常

        4)替代查看文件命令 ls

        

      02 rsync实现方式介绍

        1)全量备份数据

          

           全量备份:无论对端有没有数据,只要本地数据更新,就全部复制过去,效率低下,还占用带宽

        2)增量备份数据

          

           增量备份:传输前确认对端数据信息,对比信息,若本地新增数据而对端没有,则将新增的数据传送到对端

      03 rsync特性总结说明

        1) 支持多种类型文件拷贝

        2) 支持文件复制排除功能

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

          --exclude-from   从文文件读取需要排除的文件列表

        3) 支持文件复制属性不变

          -a        以递归方式传输文件,并保持所以文件的属性

        4) 支持文件复制增量同步

        5) 支持文件复制隧道加密

        6) 支持守护进程同步数据

        7) 主持数据同步身份验证

      04 rsync复制原理说明

    3 rsync企业工作场景说明

      01 网站内部人员数据备份场景  定时任务+rsync

      02 网站外部人员数据备份场景  实时同步+rsync

    4 rsync工作方式实践介绍

      01 rsync工作方式-本地方式

        rsync       [OPTION...]          SRC...           [DEST]

        rsync  选项(参数)              源文件            目标文件

      02 rsync工作方式-隧道方式(通过远程shell访问模式)

        1) 实现方式命令与语法

          推送(push):将本地要备份的数据推送到远端备份服务器指定目录进行传输

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

            rsync  选项(参数)   源文件(本地要备份的数据)   用户@主机(ip):要备份到的目录

          拉取(pull):将远端备份服务器中需要的数据拉取到本地指定的目录中

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

            rsync  选项(参数)    用户@主机(ip):要拉取的文件目录     拉取到本地存放目标目录

        2) 可实现传输隧道加密

        3) 推和拉工作原理说明

          

             将本地的数据传输到远端备份服务器上是推送过程

            将远端备份服务器上的数据下拉到本地目录中是拉取过程

      03 rsync工作方式-守护进程

        拉取(pull):

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

          rsync    选项(参数)      用户@主机(ip)::要拉取的文件          目标文件

          rsync   [OPTION...]   rsync://[USER@]HOST[:PORT]/SRC  [DEST]

          rsync    选项(参数)  rsync://用户@主机:端口/源文件                   目标文件

        推送(push):

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

          rsync    选项(参数)  要推送的文件    用户@主机(ip)::目标文件

          rsync   [OPTION...]     SRC    rsync://[USER@]HOST[:PORT]/DEST

          rsync    选项(参数)  要推送的文件  rsync://用户@主机(ip):端口/目标文件

    5 rsync守护进程部署实践

      00 linux系统 安装部署服务流程

        1) 下载安装软件  yum

        2) 编写配置文件  

        3) 搭建服务环境  文件需要备份到的目录/目录权限

        4) 启动服务程序  开机自动启动/etc/rc.local

        5) 测试服务功能

      01 守护进程概念说明

      02 守护进程工作方式

      03 守护进程模式部署

        1) rsync守护进程服务端配置(备份服务器端)

          步骤一:查看软件是否存在-下载安装软件

            

           步骤二:编辑rsync软件配置文件

            vim/etc/rsyncd.conf  注意centos7自动生成此文件,centos6需要手动自己创建

            

             配置文件说明:

            uid=rsync    ---指定管理备份目录的用户(此处是虚拟用户rsync)

            gid=rsync    ---指定管理备份目录的用户组

            port=873     ---定义rsync备份服务的网络端口号

            fake super=yes   ---将rsync虚拟用户伪装成一个超级管理员用户

              作用解析:

              当我们执行备份服务命令是会出现以下报错

              

               查看报错得知当系统给hosts文件创建用户组的时候出现权限不足的问题,我们知道当hosts用户进入服务端的时候他的属主已经

              变为了rsync用户,而此用户要执行chgrp命令的时候明显不能执行,chgrp需要root用户执行,此时就需要用到配置文件中的fake super配置行了

              fake super 字面翻译是伪造的超级用户,查看配置文件

              

               发现此行被注释了,此行的含义就是让rsync伪装成root用户,取消注释,当rsync用户有了root用户的执行权限时,就不会出现上述报错

              

            use chroot=no  ---和安全相关的配置

            max connections=200  ---最大连接数同时只能有200个客户端连接到备份服务器

            timeout=300   ---超时时间(单位秒)

            pid file=/var/run/rsyncd.pid  ---记录进程号码信息 1.让程序快速停止进程 2.判断一个服务是否正在运行

              文件作用解析:开启rsync服务.查看服务状态,打开文件查看文件信息

              

               此时服务进程已经开启,利用netstat命令查看当前服务进程号和端口号,会发现rsync的进程号就是文件中的进程号,有些脚本文件调用服务进程号的时候会直接查询此文件

              

               总结文件作用:    1.让程序快速停止进程  kill `cat/var/run/rsyncd.pid`

                      2.判断一个服务是否正在运行  当服务停止时.找不到此文件

                      

            lock file = /var/run/rsync.lock  --- 锁文件

            log file = /var/log/rsyncd.log    --- rsync服务的日志文件 用于排错分析问题

            ignore errors   ---忽略传输中的简单错误(传输大文件的时候对一些简单的错误进行忽略)

            read only=false  ---指定备份目录是可读可写的

            list=false     ---使客户端可以查看服务端的模块信息

            hosts allow=172.16.1.0/24  ---允许传输备份数据的主机(白名单)

            hosts deny=0.0.0.0/32  ---禁止传输备份数据的主机(黑名单)

            auth users=rsync_backup  ---指定认证用户

            secrets file = /etc/rsync.password   ---指定认证用户密码文件 用户名称:密码信息

            [backup]     模块信息

            comment = "backup dir by oldboy" 

            path = /backup    ---模块中配置参数 指定备份目录

          步骤三:创建rsync服务的虚拟用户

            useradd rsync -M(不创建家目录) -s /sbin/nologin虚拟用户的shell名称

            

             此处注意事项:当我们创建用户的时候,系统提示无法打开passwd文件,此时我们查看passwd文件和useradd的绝对路径文件发现没有权限都是正常的,没有权限阻止问题,

            查看别名设置也没有找到相关useradd的设置,上网查证问题所在,突然想到此前设置扩展属性的时候对passwd进行了锁止操作,查看文件属性,果然发现   i    ,设置了  i   导致root用户也无法对文件进行修改

            将文件的扩展属性取消,再添加用户,用户添加成功

          步骤四:创建备份服务认证密码文件

            echo "rsync_backup:oldboy123" >/etc/rsync.password

            

             密码文件是明文的,需要修改其权限只让属主能看和修改此文件

          步骤五:创建备份目录并修改属主属组信息

            

             创建/backup备份目录  使其属主和属组都为rsync用户

          步骤六:启动备份服务

          

        2) rsync守护进程客户端配置(要备份数据的服务器)

          步骤一:查看rsync软件是否存在  rpm -qa rsync  yum install -y rsync

          步骤二:创建一个密码文件

            echo "oldboy123" > /etc/rsync.password

            

          步骤三:免交互传输数据测试

            需要熟悉rsync守护进程名称语法:
                客户端做拉的操作: 恢复数据
                  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
                客户端做退的操作: 备份数据
                  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
                        src: 要推送备份数据信息
                        [USER@]: 指定认证用户信息
                        HOST: 指定远程主机的IP地址或者主机名称
                        ::DEST: 备份服务器的模块信息

            rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

            免交互方式常用来做定时任务时使用

      04 守护进程模式测试

        

      05 守护进程模式原理

        

         1   2  : 当客户端执行命令的时候,此时连接到服务端,服务端会查询配置文件/etc/rsyncd.co查看认证用户

         3     :客户端发送过来认证用户是rsync_backup,服务端查看配置文件也是,则认证用户通过,若两边认证用户不一致则会出现如下错误

            

        4   5 :认证用户确认后会再次确认密码信息,服务端查看文件/etc/rsync.password 以客户端的密码进行比较,比较通过后进行下一步

        6      7 : 客户端发送过来的文件是以root用户发送的,此时服务端要将文件属主属组信息转换为rsync虚拟用户信息

            

         7~     :将数据以rsync用户身份写入配置文件中的备份目录中,若此时服务端没有备份目录则会出现下属错误

            

         8~     : 一切正常时命令执行通过,文件完成备份注意:在服务端创建目录的时候一点要将/backup目录的属主属组信息变为rsync不然会出现下属错误

            

    6 rsync命令参数详细说明

      -v  --verbose(信息)  显示详细的传输信息

      -z  --compress(yasuo)  传输时进行压缩以提高传输速率

      -a  --archive(归档)  命令的归档参数 包含:rtopgDl

      -r   --recursive(递归)  递归参数

      -t   --time      保持文件属性时间信息不变(修改时间)

      -o  --owner      保持文件属主信息不变

      -g  --group      保持文件属组信息不变

        ps:如何让-o和-g参数生效

        修改服务端的配置文件,将uid和gid改为源文件的属主属组,再关闭超级用户的权限即可

        

         

      -p  --perms      保持文件权限信息不变

      -D           保持设备文件信息不变

      -l  --links        保持链接文件属性不变

      -L           保持链接文件数据信息不变

      -P           显示数据传输的进度信息

        

      -e  "ssh -p 52113"  指定使用的信道协议及端口

      --exclude=PATTERN(式)  排除指定数据不被传输

      --exclude-from=file    排除指定数据不被传输(批量传输)

      --bwlimit=RATE      显示传输的速率  100Mb /  8   =12.5MB

      --delete        无差异同步参数

    7 rsync守护进程扩展实践

      01 守护进程多模块功能配置

        在企业中可能会有多个部门多个数据信息需要进行备份,为了使各部门数据不会混在一起,系统提供了多模块功能设计

          例: 企业中有如下部门

            sa  sa_data.txt

            devdate  dev_date.txt

            dba  dba_date.txt      各部门需要将数据备份到不同的目录中

          在服务端rsync配置文件中进行配置:添加备份目录模块信息

          

           创建目录,修改属主属组信息

          

           在客户端上传数据,将不同的数据传输到不同的目录中

          

           查看数据传输情况

          

      02 守护进程的排除功能实践

        准备环境

        

         需求01: 将/oldboy目录下面 a目录数据全部备份 b目录不要备份1.txt文件 c整个目录不要做备份

          利用--exclude=PATERN

          绝对路径方式:排除的文件路径是绝对路径

          

           

           相对路径方式:排除的文件路径是相对路径

          

           

           总结:由于7对系统的优化,绝对路径和相对路径都可以实现备份数据

        需求02: 将/oldboy目录下面 a目录数据全部备份 b目录不要备份1.txt文件 c整个目录1.txt 3.txt文件不要备份

          利用--exclude-from=file  --批量删除(对于批量排除来说,我们需要将多个文件整理成一个文件,再将整理好的文件排除即可)

          步骤一:编辑一个排除文件(排除的时候需要将文件本身也加进去)

          

           步骤二:实现批量排除

          

           

      03 守护进程来创建备份目录

        由于客户端较多,当相同的数据如/etc/hosts都要备份到服务端上同一个/backup时,此时会出现问题,由于rsync是增量备份,对于相同    的文件来说不重新备份,也就是只能备份一个hosts文件,此时需要在/backup下创建关于客户端的下级目录,系统提供在客户        端自己创建下级目录,不用到服务端创建

        创建下级目录:

        

         

         注意::无法创建多级目录

        

      04 守护进程的访问控制配置

        守护进程白名单和黑名单功能

        第一种情况:只有允许的白名单,没有禁止的黑名单

        

         

         只允许白名单的流量通过,不允许其他流量通过

        第二种情况:没有允许的白名单,只有禁止的黑名单

        

         

         只有禁止的流量无法通过,其他正常通过

         第三种情况:既有允许的白名单.又有禁止的黑名单

        

         

         允许的流量通过,禁止的流量不能通过

         特殊情况:即允许又禁止

        

         

         即允许又禁止的情况下,白名单的配置优先于黑名单

        正常情况:白名单没有,黑名单也没有

        

         

         对于既不在白名单也不在黑名单的流量是允许通过的  

      05 守护进程的列表功能配置

        有些时候当客户端要往服务端备份数据的时候,不清楚自己要备份的目录是哪个,可以利用命令查询目录模块列表信息

        

         

         利用命令可查看到目录列表信息,但由于此设置伴随安全风险问题.所以建议还是关闭列表功能

  • 相关阅读:
    用免费Scrum工具Leangoo思维导图 实现影响地图
    mysql-线程模型
    mongodb-锁
    mongodb-mmapv1存储引擎解析(转)
    netty-read
    netty-bind
    netty-eventloop
    java基础-Executor
    ehcache3-源码简析三
    ehcache3-源码简析二
  • 原文地址:https://www.cnblogs.com/zp751060301/p/13259945.html
Copyright © 2011-2022 走看看