第三十一节课综合架构备份服务章节

  1. 课程知识回顾部分
    1.ping -i -c -f -q
    2.telnet nc nmap -p 扫端口
    3.dns dig nslookup
    4.tcpdump -i -c -nn -x -w -r
    5.克隆的两种方式 链接克隆 完全克隆
    $1=6
    怎么显示*自增长脚本
!/bin/bash
for((i=1; i<=1; j>i; j--))
do
echo -n " "
done
for m in seq 1 $i
do
echo -n "* "
done
echo
done
01 * 4个空格 1个星空格
02 * * 1个空格 2个星空格
03 * * * 0个空格 3个星空格
6.rsync 备份内容
rsync 两地三中心
rsync备份数据特点 全量备份 增量备份
rsync的是三种工作模式
本地模式
cp
远程模式
推模式
rsync 参数 本地目录 用户@地址(主机名):远程目录
拉模式
rsync 参数 用户@地址(主机名):远程目录 本地目录
守护进程模式
(1)检查安装
(2)配置rsync的配置文件
(3)创建虚拟用户
(4)创建密码文件 修改权限 600
(5)创建备份目录 修改属主 属组
(6)重启服务 设置开机启动
  1. rsync守护进程模式备份数据原理 (用户身份转换过程)
    第一步: 客户端 --> 服务端 发送请求传输数据信息 执行命令 有认证用户信息 传输数据信息
    第二部: 服务端 --> 客户端 接收到传输数据信息 审核认证用户
    发送回复信息 需要认证密码
    第三步: 客户端 --> 服务端 发送请求传输数据信息 发送认证密码信息
    第四步: 服务端 --> 客户端 发送确认信息
    第五步: 客户端 --> 服务端 用户携带数据通过网络进行传输 需要对用户身份进行转换 --> rsync (配置文件指定)
    第六部: 服务端 --> 客户端 发送数据存储完毕确认信息 将数据保存到备份目录中 备份目录权限属主为rsync
    修改备份数据属主和属组信息 rsync用户身份修改文件权限
    错误说明:
    chgrp ".hosts.Zb1kyS" (in backup) failed: Operation not permitted (1)
    chgrp change group ownership(修改数据属组信息)
    [oldboy@backup ~] chgrp oldgirl /etc/hosts
    chgrp: changing group of '/etc/hosts': Operation not permitted
    解释说明:
    普通用户无法修改文件的属组信息
    补充: 配置文件参数
    fake super = yes --- 让指定虚拟用户伪装成管理员用户, 可以强行修改文件属主属组权限信息
  2. rsync命令参数说明
    -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
    归档模式参数; 等价于 -rlptgoD
    -r, --recursive recurse into directorie
    递归传输目录
    -l, --links copy symlinks as symlinks
    备份传输软链接文件保持属性不变
    -L, --copy-links transform symlink into referent file/dir
    备份传输软连接文件时,会将源文件内容信息进行传输备份
    -p, --perms preserve permissions
    保持权限信息不变 644 755
    -t, --times preserve modification times
    保持文件修改时间不变
    -o, --owner preserve owner (super-user only)
    保持文件属主信息不变
    -g, --group preserve group
    保持文件属组信息不变
    -D same as --devices --specials
    保持设备文件属性信息不变 c b s
    -v, --verbose increase verbosity
    传输备份数据详细过程信息
    -P same as --partial --progress
    传输进度信息
    --exclude=PATTERN exclude files matching PATTERN
    根据指定数据信息进行排除
    --exclude-from=FILE read exclude patterns from FILE
    根据指定文件进行批量排除数据信息
    --delete delete extraneous files from destination dirs
    进行无差异同步传输数据
    同步目录数据信息时, 保证目录中数据信息一模一样
    -z, --compress compress file data during the transfer
    在传输数据时,对文件进行压缩传输
    --bwlimit=RATE limit socket I/O bandwidth
    限制传输速率
    --password-file 实现免交互传输数据信息
    ============================================================================================
    补充: 客户端部署过程(rsync)
    第一个里程: 创建生成密码文件
    echo oldboy123 >/etc/rsync.password
    chmod 600 /etc/rsync.password
    第二个里程: 实现免交互传输数据
    rsync -avz /oldboy/oldboy.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    sending incremental file list
    oldboy.txt
    sent 93 bytes received 43 bytes 272.00 bytes/sec
    total size is 0 speedup is 0.00
    ============================================================================================
  1. rsync守护进程备份服务企业应用
    守护进程模式:
    推: 客户端 -- 数据备份 -- 备份服务器
    拉: 客户端 -- 数据恢复 -- 备份服务器
    服务端 -- 数据备份 -- 客户端 (部署rsync守护进程)
    Access via rsync daemon:
    Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
    SRC: 备份服务器上模块信息
    DEST: 本地保存数据路径信息
    rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
    Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
    rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
    企业多模块应用过程:
    1. 守护进程模式多模块创建
      第一个里程: 配置文件中创建多个模块信息
      [sa_backup]
      comment = "backup dir by oldboy"
      path = /backup/sa_dir/
      [dev_backup]
      comment = "backup dir by oldboy"
      path = /backup/dev_dir/
      [dba_backup]
      comment = "backup dir by oldboy"
      path = /backup/dba_dir/
      第二个里程: 确认指定模块路径是否存在/权限是否正确
      第三个里程: 重启rsync服务
    2. 守护进程模式数据排除功能
      创建测试环境: 客户端创建
      [root@nfs01 oldboy]# mkdir /oldboy/oldboy{01..03}
      [root@nfs01 oldboy]# touch /oldboy/oldboy{01..03}/{a..c}.txt
      [root@nfs01 oldboy]# tree /oldboy
      /oldboy
      ├── oldboy01
      │?? ├── a.txt
      │?? ├── b.txt
      │?? └── c.txt
      ├── oldboy02
      │?? ├── a.txt
      │?? ├── b.txt
      │?? └── c.txt
      └── oldboy03
      ├── a.txt
      ├── b.txt
      └── c.txt
      3 directories, 9 files
      需求01: 备份/oldboy目录数据时,将oldboy01目录进行排除,将oldboy03目录中的b.txt文件进行排除
      需求02: 备份/oldboy目录数据时,将oldboy01目录进行排除a.txt oldboy02/b.txt oldboy03/c.txt
      方法一: 利用rsync命令参数实现
      --exclude
      代码: rsync -avz /oldboy/ --exclude=oldboy01/ --exclude=oldboy03/b.txt rsync_backup@172.16.1.41::sa_backup --password-file=/etc/rsync.password
      sending incremental file list
      ./
      oldboy02/
      oldboy02/a.txt
      oldboy02/b.txt
      oldboy02/c.txt
      oldboy03/
      oldboy03/a.txt
      oldboy03/c.txt
      sent 420 bytes received 134 bytes 1,108.00 bytes/sec
      total size is 12,288 speedup is 22.18
      说明: 利用--exclude排除数据信息,需要利用相对路径指定需要排除的数据,相对路径是相对于同步目录而言
      方法二: 利用rsync命令参数实现:
      --exclude-from
      第一个里程: 编写排除数据信息文件
      [root@nfs01 oldboy]# cat execlude.txt
      oldboy01/a.txt
      oldboy02/b.txt
      oldboy03/c.txt
      第二个里程: 利用命令参数进行排除多个数据
      [root@nfs01 oldboy]# rsync -avz /oldboy/ --exclude-from=/oldboy/execlude.txt rsync_backup@172.16.1.41::sa_backup --password-file=/etc/rsync.password
      sending incremental file list
      ./
      execlude.txt
      oldboy01/
      oldboy01/b.txt
      oldboy01/c.txt
      oldboy02/
      oldboy02/a.txt
      oldboy02/c.txt
      oldboy03/
      oldboy03/a.txt
      oldboy03/b.txt
      sent 601 bytes received 180 bytes 1,562.00 bytes/sec
      total size is 12,333 speedup is 15.79
      方法三: 利用服务端配置文件参数
      exclude --- 指定数据进行排除同步 == 客户端命令参数 --exclude
      exclude from --- 指定多个数据排除文件信息,排除多个数据 == 客户端命令参数 --exclude-from
      [sa_backup]
      comment = "backup dir by oldboy"
      path = /backup/sa_dir/
      exclude = oldboy01/a.txt oldboy02/b.txt
      [sa_backup]
      comment = "backup dir by oldboy"
      path = /backup/sa_dir/
      exclude from = /backup/sa_dir/execlude.txt
      ====================================================================
      补充: rsyncd.conf配置文件说明
      全局配置: 在模块上面配置的信息,为全局配置,会影响所有模块
      局部配置: 在模块里面配置的信息,为局部配置,只会影响指定模块
      ====================================================================
    3. 守护进程模式数据无差异同步
      --delete
      企业应用: 保证数据同步一致 存储服务器数据 == 备份服务器数据
      PS: --delete参数,一定要慎用,容易造成误删数据
    4. 守护进程模式创建子目录功能
      [root@nfs01 oldboy]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::sa_backup/oldboy/ --password-file=/etc/rsync.password
      sending incremental file list
      created directory oldboy
      hosts
      sent 219 bytes received 72 bytes 582.00 bytes/sec
      total size is 335 speedup is 1.15
    5. 守护进程模式访问策略功能
      白名单配置/黑名单配置
      参见图示
    6. 【第三十一节课综合架构备份服务章节】守护进程模式列表功能说明 (了解)
      list = false --- 可以实现客户端列表显示备份服务端所有模块信息
      [root@nfs01 oldboy]# rsync rsync_backup@172.16.1.41::
      sa_backup "sa backup dir"
      dev_backup "dev backup dir"
      dba_backup "dba backup dir"

    推荐阅读