day30--综合架构之rsync备份-1

系统模板主机克隆说明
    a 主机克隆准备工作
      虚拟主机网络配置   添加了一块内网网卡
      虚拟主机系统优化
    b 主机克隆过程说明
      链接克隆: 利用模板机做为克隆主机, 生成链接克隆主机
                节省克隆之后的资源  占用少 
                克隆主机效率较高
                克隆主机 依赖 模板主机
      完整克隆: 利用模板机做为克隆主机, 生成完整克隆主机   企业常用
                浪费克隆之后的资源  占用多
                克隆主机效率较低
                克隆主机 与 模板主机相互独立
    
    克隆后主机初始化脚本:
    cat /server/scripts/init.sh 
    #!/bin/bash
    
    Host_name=$1
    Host_ip=$2
    
    # 修改主机名称
    hostnamectl set-hostname $Host_name
    # 修改网卡地址
    sed -ri "s#200#$Host_ip#g;/UUID|HWADDR/d" /etc/sysconfig/network-scripts/ifcfg-eth[01]
    # 重启网络服务
    sleep 2
    systemctl restart network

备份服务概念介绍
    a 对网站服务器数据进行备份存储  (恢复丢失数据  恢复误修改数据)
    b 对网站服务器数据进行对比分析  
    c 对网站服务器数据进行统一管理  web服务集群 web日志文件

    备份服务器应该有几台合适:
    同一机房要有多个备份服务器
    不同机房要有多个备份服务器
    不同地理位置有多个备份服务器
    PS: 中石油备份数据架构解决方案---两地三中心

    备份服务器备份数据, 备份的是什么数据
    1. 内部人员产生数据:  脚本文件 代码信息 配置文件(ansible) 数据库文件 日志文件  --- 定时任务备份
    2. 外部人员产生数据:  图片信息 附件信息 视频信息                               --- 实时数据备份
备份服务实现备份数据方法
    rsync软件:  a fast, versatile, remote (and local) file-copying tool
                快速    多功能     远程(本地)文件备份工具
    官网: https://rsync.samba.org/

    rsync软件实现快速备份:
    全量备份数据: 将所有数据进行完整备份传输  备份传输数据效率较低
    增量备份数据: 将变化数据进行备份传输      备份传输数据效率较高
    增量备份数据原理:
    1. 比较数据属性信息: oldboy_dir : oldboy.txt(修改) oldgirl.txt        ---->   备份服务器: /backup  oldboy.txt oldgirl.txt 
       默认rsync增量传输数据利用属性信息做比较
    2. 比较数据指纹信息: oldboy_dir : oldboy.t xt(cba)  oldgirl.txt(abcd)  ---->   备份服务器: oldboy.txt(abc)  oldgirl.txt(abcd)
       使用rsync -c (-c, --checksum              skip based on checksum, not mod-time & size)  基于指纹信息判断文件的变化
  • 方式一: 利用rsync软件是本地备份
    Local:  rsync [OPTION...] SRC... [DEST]
    [root@backup ~]# cp /etc/hosts /tmp/
    [root@backup ~]# rsync /etc/hosts /tmp/hosts.bak
    [root@backup ~]# ll /tmp/hosts*
    -rw-r--r-- 1 root root 337 8月  12 17:09 /tmp/hosts
    -rw-r--r-- 1 root root 337 8月  12 17:09 /tmp/hosts.bak
  • 方式二: 利用rsync软件实现远程备份
    Access via remote shell:
    Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
    [USER@]  --- 登录远程主机用户信息  默认不指定用户使用当前登录系统用户进行连接
    HOST     --- 远程主机IP地址信息或者主机名称信息
    SRC      --- 远程主机上要备份传输到本地主机数据信息
    DEST     --- 将数据保存本地主机路径信息
    
    Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
    [USER@]  --- 登录远程主机用户信息  默认不指定用户使用当前登录系统用户进行连接
    HOST     --- 远程主机IP地址信息或者主机名称信息
    SRC      --- 本地主机上要备份传输到远程主机数据信息
    DEST     --- 将数据保存远程主机路径信息
    
    远程备份文件: 本地数据 ---> 远程主机
    scp /etc/hosts 172.16.1.31:/tmp
    rsync /etc/hosts 172.16.1.31:/tmp
    
    远程备份目录: 本地数据 ---> 远程主机
    scp -rp /oldboy 172.16.1.31:/tmp/
    rsync -vrp /oldboy 172.16.1.31:/tmp/    ???  全量备份数据
    ============================================================================
    rsync传输目录说明:
    传输目录后面有斜线 /oldboy/   表示将目录下面的数据内容进行传输备份
    传输目录后面无斜线 /oldboy    表示将目录本身以及下面的数据内容都进行传输备份
    ============================================================================
    
    问题一: 如何免交互备份数据信息
    问题二: 如何实现增量备份数据
    问题三: 如何限制进行传输连接数
    问题四: 如何实现认证备份数据
            开发人员 100人  dev 认证用户备份数据 /backup/dev 
            运维人员  50人  sa  认证用户备份数据 /backup/sa
            数据库    10人  dba 认证用户备份数据 /backup/dba
  • rsync守护进程方式部署流程
    服务端部署过程:
    第一个里程: 确认软件是否安装/安装软件程序
    rpm -qa rsync
    yum install -y rsync 
    
    第二个里程: 编写配置文件 (考试题)
    vi /etc/rsyncd.conf    --- 学习配置 man rsyncd.conf
    uid = rsync            --- 管理备份目录的属主信息
    gid = rsync            --- 管理备份目录的属组信息
    port = 873             --- 指定rsync守护进程服务端口信息 默认端口为 873
    #fake super = yes      --- ???
    use chroot = no        --- 和远程传输安全有关参数
    max connections = 200  --- 设置最大连接数                               上厕所
    timeout = 300          --- 连接超时时间(默认秒)  没有数据传输的时间     
    pid file = /var/run/rsyncd.pid     --- 记录服务进程号码文件==pid文件   掌握
                                           判断服务是否开启或关闭 --- shell
    lock file = /var/run/rsync.lock    --- 当max connection达到上限, 利用锁文件阻止新的连接建立
    log file = /var/log/rsyncd.log     --- 程序日志文件(排错)
    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/                    --- 指定备份目录
    
    实际配置信息:
    uid = rsync
    gid = rsync
    port = 873
    #fake super = yes
    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
    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 -M -s /sbin/nologin rsync 
    
    第四个里程: 创建密码文件 修改文件权限
    echo rsync_backup:oldboy123 >/etc/rsync.password
    echo oldboy:oldboy123 >>/etc/rsync.password         --- 密码文件中添加多个认证用户
    chmod 600 /etc/rsync.password 
    
    第五个里程: 创建备份目录  修改目录属主属组信息
    mkdir /backup
    chown rsync.rsync /backup
    
    第六个里程: 启动或重启服务
    systemctl start rsyncd
    systemctl restart rsyncd 
    systemctl enable rsyncd
    

    客户端部署过程:
    第一个里程: 测试服务端部署过程
    rsync -avz /oldboy [email protected]::backup

你可能感兴趣的:(day30--综合架构之rsync备份-1)