美文网首页
备份服务

备份服务

作者: 肥四_F4 | 来源:发表于2022-11-30 10:11 被阅读0次

    一、备份服务原理

    1.增量备份数据原理

     利用算法实现增量备份
     根据checksum或者md5sum算法识别出增量数据,将增量数据进行传递
     根据文件属性信息变化(修改时间/大小),进行数据传递
    

    2.rsync守护进程方式备份数据原理

    需要完成用户身份验证
    需要将用户身份进行转换 rsync 
    需要将备份数据属主和属组进行改变 rsync
    

    二、搭建流程

    服务端:
    1.确认软件是否安装 (yum -install rsync)
      rpm -qa rsync
    2.修改配置文件
      cp /etc/rsyncd.conf /etc/rsyncd.conf.bak
      vim /etc/rsyncd.conf
        uid = rsync                        --- 指定转换用户身份/备份目录管理用户
        gid = rsync                        --- 指定转换用户组身份/备份目录管理用户组
        port = 873                         --- 指定服务端口
        fake super = yes                   --- 是否伪装成一个超级用户 (rsync) 
                                               保证文件权限信息不变/不再显示chgrp命令错误提示   
        use chroot = no                    --- 实现远程传输安全配置
        max connections = 200              --- 最大连接数
        timeout = 300                      --- 连接超时时间
        pid file = /var/run/rsyncd.pid     --- 记录服务进程号码  只有服务启动才会有进程文件
        lock file = /var/run/rsync.lock    --- 控制最大连接数量
        log file = /var/log/rsyncd.log     --- rsync备份服务日志文件
        ignore errors                      --- 忽略错误功能 保证传输数据效率
        read only = false                  --- 针对于备份目录是否是只读 
        list = false                       --- 当list参数配置为true时,客户端可以获取服务端所有模块列表信息        
                                           (用Enter可以打印出清单)
        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                     --- 指定备份目录路径
    3.创建备份目录管理用户
      #创建一个虚拟用户
      useradd -M -s /sbin/nologin  rsync
      #查看用户是否创建成功
      id rsync
      uid=1042(rsync) gid=1046(rsync) groups=1046(rsync)
    4.创建一个备份目录并修改属主属组
      mkdir /backup 
      chown rsync.rsync /backup
    5.创建一个访问认证文件
      vim /etc/rsync.password   
      rsync_backup:oldben
      chmod 600 /etc/rsync.password
    6.启动服务
      systemctl start rsyncd
      netstat -lntup|grep rsync
    
    客户端:
    rsync命令使用方法:
    1.本地备份数据工作方式 (类似cp命令功能)
       cp -r 备份数据信息  保存数据目录路径
      rsync  【参数】 源文件 目标文件位置
    
    2.远程备份数据工作方式 (类似scp命令功能)
       拉取数据:客户端将数据进行下载 <-- 备份服务器  还原
       rsync 参数  远程主机地址或者名称:拉取的数据信息    本地保存数据目录信息
       rsync 172.16.1.41:/etc/hosts ./
       
       推送数据:客户端将数据进行上传 --> 备份服务器  备份 
       rsync 参数  本地需要备份推送数据  远程主机地址或者名称:/备份数据路径信息
       rsync /etc/hosts 172.16.1.41:/backup
    
      #PS:rsync在推送目录数据时,目录后面有 / 和 没有/有本地区别
       有   /    将目录下面数据内容进行推送传输
       没有 /    将目录本身以及下面数据内容都进行推送传输
       
    
    3.守护进程备份数据方式 (服务端/客户端)
       拉取数据: 
       rsync [OPTION...] [USER@]HOST::SRC... [DEST]
       rsync 参数  认证用户名称@服务端主机名称或地址::模块信息   本地保存数据路径
       rsync  rsync_backup@172.16.1.41::backup/hosts  ./
       
       推送数据: 
       rsync 参数  本地需要推送数据  认证用户名称@服务端主机名或地址::模块信息
       rsync -r /oldboy  rsync_backup@172.16.1.41::backup
    

    三、备份服务命令参数

      rsync 常用参数   -avz 
        -z, --compress(压缩)              compress file data during the transfer  
                                            将传输文件数据进行压缩处理
        -v, --verbose                       increase verbosity
                                            显示数据传输详细过程
        -a, --archive                       archive mode; equals -rlptgoD 
                                            归档模式参数; -a参数等价于输入 -rlptgoD
        -r, --recursive                     recurse into directories
                                            远程传输目录信息
        -l, --links                         copy symlinks as symlinks   
                                            是否可以将链接类型文件进行传输   (没有什么意义)
        -p, --perms                         preserve permissions    
                                            保持权限信息不变    
        -t, --times                         preserve modification times
                                            保持修改时间不变
        -o, --owner                         preserve owner (super-user only)                                    
                                            保持文件属主信息不变
        -g, --group                         preserve group  
                                            保持文件属组信息不变
        -D                                  same as --devices --specials    
                                            是否可以将设备文件进行传输
        -L, --copy-links                    transform symlink into referent file/dir
                                            将链接文件指向的源文件的真实数据进行传递
        -P                                  same as --partial --progress    
                                            显示数据传输进度信息
    

    四、备份服务企业应用(白名单优先于黑名单)

        1)备份服务多模块配置
           需求:将开发人员 运维人员 数据库人员备份数据进行隔离
           操作说明:
           第一个历程:修改配置文件,添加多个模块信息
           [sa_backup]
           comment = "backup dir by oldboy"
           path = /sa_backup
           [dev_backup]
           comment = "backup dir by oldboy"
           path = /dev_backup
           
           第二个历程:创建模块对应目录信息
           mkdir /sa_backup  /dev_backup
           chown rsync.rsync  /sa_backup  /dev_backup
           
           第三个历程:重启服务程序
           systemctl restart rsyncd 
           
        2)备份服务模块目录中如何创建子目录
           需求:将运维人员oldboy01数据 和 oldboy02数据进行区分
                 将不同主机数据进行区分
           操作说明:
           rsync -v init.sh rsync_backup@172.16.1.41::backup/init/
           PS: 默认不支持创建多级目录
    
        3)实现排除指定数据信息进行备份
           环境准备:
           mkdir oldboy{01..03}
           touch oldboy{01..03}/{a..c}.txt
           ├── oldboy01
           │?? ├── a.txt
           │?? ├── b.txt
           │?? └── c.txt
           ├── oldboy02
           │?? ├── a.txt
           │?? ├── b.txt
           │?? └── c.txt
           └── oldboy03
               ├── a.txt
               ├── b.txt
               └── c.txt
               
           需求1:不想让oldboy01中的,a.txt文件进行备份
           --exclude   --- 排除指定数据不要进行传输同步
           rsync -r oldben01 oldben02 oldben03 --exclude=oldben01/a.txt rsync_backup@172.16.1.41::backup/oldben/
    
           需求2:需要排除多个文件或者目录数据信息时
           --exclude-from   --- 加载一个文件可以实现排除多个数据信息
           第一个历程:编写一个排除文件
           oldboy01/a.txt
           oldboy02/b.txt
           oldboy03/c.txt
           PS:排除数据信息写成相对路径, 相对于传输目录而言
           
           第二个历程:执行排除数据命令
           rsync -r oldben  --exclude-from=1.txt rsync_backup@172.16.1.41::oldben/oldgirl/
    
        4)备份数据采用无差异同步数据 (慎用)
           实现客户端和服务端数据一致
           rsync -r oldben/  rsync_backup@172.16.1.41::oldben/oldgirl/
           意义:保证存储服务器用户数据信息和备份器数据信息高度一致
           
        5)实现免交互自动备份数据功能
           定时任务/实时同步
           客户端操作:
           第一个历程:创建密码文件
           vim /etc/rsync.password
           oldboy123
           chmod 600 /etc/rsync.password
           
           第二个历程:进行免密码传输数据测试
           rsync -r oldben/  rsync_backup@172.16.1.41::oldben/oldgirl/ --password-file=/etc/rsync.passwd
        6)实现数据备份访问控制功能
           hosts allow = 172.16.1.0/24    白名单:允许哪些主机或网段进行传输
           hosts deny = 0.0.0.0/32        黑名单:拒绝内些主机或网段进行传输
        
       #企业应用: 只是选择一种名单即可, 不用白名单和黑名单同时存在
     =========================================================================   
           备份范围全局配置和局部配置:
           全局配置:配置文件中模块以外配置称为全局配置
                     影响所有模块功能
           局部配置:配置文件中模块以内配置称为局部配置
                     只是影响指定模块功能 局部配置优先于全局配置    
    =========================================================================       
        7)数据传输限速功能
           开发人员(家里)  --- 互联网 -电信/联通/移动 100M- 路由器  ---- 网站备份服务器
           网站用户          --- 互联网                               ---- web服务器
           --bwlimit=KBps          limit socket I/O bandwidth 
        =========================================================================
    

    相关文章

      网友评论

          本文标题:备份服务

          本文链接:https://www.haomeiwen.com/subject/swwjfdtx.html