综合架构备份服务

1.备份服务介绍

1.1综合架构备份服务作用

保证数据不会丢失
便于数据进行恢复
便于进行数据对比
数据进行定时备份
数据进行实时备份

1.2综合架构备份服务如何实现

1.3综合架构备份服务部署(备份服务器配置文件参数信息)

rsync软件是一个快速,多功能,远程和本地文件备份工具
rsync软件可以实现全量和增量备份 (优势)

增量备份是如何实现的
两种方式:数学算法--数据比对
第一种:比对文件数据属性信息(默认)
第二种:比对文件md5数值

rsync相当于cp、rm、ls、scp
rsync软件 cp scp rm ls 1v4
rsync替换cp:
cp /etc/hosts /tmp/ --- 备份文件
rsync /etc/hosts /tmp/ --- 备份文件
rsync -a /oldboy /tmp --- 备份目录
PS:rsync备份目录时
目录后面有/ oldboy/ 将目录下面的数据信息进行备份
目录后面没有/ oldboy 将目录下面的内容以及目录备份都进行备份

rsync替换scp:远程备份

scp -rp /etc/hosts  172.16.1.31:/tmp   --- 远程传输备份文件
    rsync -rp /etc/hosts  172.16.1.31:/tmp

rsync替换rm:

mkdir /null
  rsync -avz --delete /null/ /tmp   --- 将目录中的数据进行删除或者清空
  --delete 无差异同步参数
rsync替换ls:
rsync /etc/hosts
-rw-r-xr-x            391 2019/06/11 09:36:15 hosts

raync命令详细的语法说明

实现本地数据备份:等价于cp
Local: rsync [OPTION...] SRC... [DEST]
src:需要备份的数据信息
dest:备份到什么路径中

实现远程语法的备份(全量)

Access via remote shell:

    Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
    [USER@]: 以什么用户身份登录到远程主机,默认以当前登录用户身份登录远程主机
    HOST:    远程主机IP地址或者主机名称信息
    SRC:     需要拉取的远程主机数据信息
    dest:    数据保存到本地主机的路径信息
 Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
    SRC:     需要推送的本地主机数据信息
    [USER@]   以什么用户身份登录到远程主机,默认以当前登录用户身份登录远程主机
    HOST:    远程主机IP地址或者主机名称信息
    DEST:    数据保存到远程主机的路径信息
    Access via rsync daemon:
    Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
          rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
    Push: rsync [OPTION...] SRC...         [USER@]HOST::DEST
          src:  需要推送的本地主机数据信息
          [USER@]: 输入正确认证用户信息
          HOST:   远程主机IP地址或者主机名称信息
          ::DEST   指定备份数据的模块信息
          
          rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
  1. 可以实现免交互传输数据
  2. 实现远程传输认证功能
  3. 守护进程方式具有配置文件,满足更多企业需求
  4. 控制客户端连接服务端的数量

rsync守护进程的部署过程

服务端部署流程
第一个里程碑:确认软件是否安装

rpm -qa rsync

如果没有安装

yum install -y rsync

第二个里程碑:编写配置文件

vim /etc/rsyncd.conf
    #rsync_config
    #created by HQ at 2017
    ##rsyncd.conf start##
    
    uid = rsync             --- 备份目录的管理用户(属主信息)???
    gid = rsync             --- 备份目录的管理用户(属组信息)???
    port = 873              --- rsync守护进程服务端口号         
    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                    --- 指定备份目录路径信息 

第三个里程碑:创建备份目录管理用户

useradd rsync -s /sbin/nologin -M

第四个里程碑:创建认证密码信息,并修改权限

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

chmod 600 /etc/rsync.password

第五个里程碑:创建备份目录,并修改目录权限

mkdir /backup

chown rsync.rsync /backup/

第六个里程碑:启动备份服务器的服务

    systemctl start rsyncd

    systemctl enable rsyncd

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
所有服务端部署流程:
01. 软件部署安装
02. 软件配置文件编写
03. 软件环境准备(目录 文件 用户信息)
04. 将服务进行启动 systemctl start/enable
05. 进行服务程序验证
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

常见问题汇总Rsync服务常见问题汇总讲解:

==================================

  1. rsync服务端开启的iptables防火墙
    【客户端的错误】
 No route to host

【错误演示过程】

[root@nfs01 tmp]# rsync -avz /etc/hosts [email protected]::backup
   rsync: failed to connect to 172.16.1.41: No route to host (113)
   rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]

【异常问题解决】
关闭rsync服务端的防火墙服务(iptables)

[root@backup mnt]# /etc/init.d/iptables stop
   iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
   iptables: Flushing firewall rules:                         [  OK  ]
   iptables: Unloading modules:                               [  OK  ]
   [root@backup mnt]# /etc/init.d/iptables status
   iptables: Firewall is not running.
  1. rsync客户端执行rsync命令错误
    【客户端的错误】
The remote path must start with a module name not a / 

【错误演示过程】

 [root@nfs01 tmp]# rsync -avz /etc/hosts [email protected]::/backup
   ERROR: The remote path must start with a module name not a /
   rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]

【异常问题解决】
rsync命令语法理解错误,::/backup是错误的语法,应该为::backup(rsync模块)

  1. rsync服务认证用户失败
    【客户端的错误】
 auth failed on module oldboy

【错误演示过程】

[root@nfs01 tmp]# rsync -avz /etc/hosts [email protected]::backup
   Password: 
   @ERROR: auth failed on module backup
   rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]

【异常问题解决】

  1. 密码真的输入错误,用户名真的错误

  2. secrets file = /etc/rsync.password指定的密码文件和实际密码文件名称不一致

  3. /etc/rsync.password文件权限不是600

  4. rsync_backup:123456 密码配置文件后面注意不要有空格

  5. rsync客户端密码文件中只输入密码信息即可,不要输入虚拟认证用户名称

  6. rsync服务位置模块错误
    【客户端的错误】

 Unknown module 'backup'   

【错误演示过程】

[root@nfs01 tmp]# rsync -avz /etc/hosts [email protected]::backup
   @ERROR: Unknown module 'backup'
   rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]

【异常问题解决】

  1. /etc/rsyncd.conf配置文件模块名称书写错误

  2. rsync服务权限阻止问题
    【客户端的错误】

Permission denied

【错误演示过程】

[root@nfs01 tmp]# rsync -avz /etc/hosts [email protected]::backup
   Password: 
   sending incremental file list
   hosts
   rsync: mkstemp ".hosts.5z3AOA" (in backup) failed: Permission denied (13) 
   sent 196 bytes  received 27 bytes  63.71 bytes/sec
   total size is 349  speedup is 1.57
   rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]   

【异常问题解决】

  1. 备份目录的属主和属组不正确,不是rsync

  2. 备份目录的权限不正确,不是755

  3. rsync服务备份目录异常
    【客户端的错误】

chdir failed   

【错误演示过程】

 [root@nfs01 tmp]# rsync -avz /etc/hosts [email protected]::backup
   Password: 
   @ERROR: chdir failed
   rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]

【异常问题解决】

  1. 备份存储目录没有建立

  2. 建立的备份存储目录和配置文件定义不一致
    说明:如果没有备份存储目录

  3. rsync服务无效用户信息
    【客户端的错误】

invalid uid rsync

【错误演示过程】

  [root@nfs01 tmp]# rsync -avz /etc/hosts [email protected]::backup
   Password: 
   @ERROR: invalid uid rsync
   rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]

【异常问题解决】
rsync服务对应rsync虚拟用户不存在了

  1. 客户端已经配置了密码文件,但免秘钥登录方式,依旧需要输入密码
    【客户端的错误】
  password file must not be other-accessible

【错误演示过程】

   [root@nfs01 tmp]# rsync -avz /etc/hosts [email protected]::backup --password-file=/etc/rsync.password
   password file must not be other-accessible
   continuing without password file
   Password: 
   sending incremental file list
   sent 26 bytes  received 8 bytes  5.23 bytes/sec
   total size is 349  speedup is 10.26

【异常问题解决】
rsync客户端的秘钥文件也必须是600权限

  1. rsync客户端连接慢问题
    【错误日志信息】
    错误日志输出
 2017/03/08 20:14:43 [3422] params.c:Parameter() - Ignoring badly formed line in configuration file: ignore errors
   2017/03/08 20:14:43 [3422] name lookup failed for 172.16.1.31: Name or service not known
   2017/03/08 20:14:43 [3422] connect from UNKNOWN (172.16.1.31)
   2017/03/08 20:14:43 [3422] rsync to backup/ from rsync_backup@unknown (172.16.1.31)
   2017/03/08 20:14:43 [3422] receiving file list
   2017/03/08 20:14:43 [3422] sent 76 bytes  received 83 bytes  total size 349
   正确日志输出
   2017/03/08 20:16:45 [3443] params.c:Parameter() - Ignoring badly formed line in configuration file: ignore errors
   2017/03/08 20:16:45 [3443] connect from nfs02 (172.16.1.31)
   2017/03/08 20:16:45 [3443] rsync to backup/ from rsync_backup@nfs02 (172.16.1.31)
   2017/03/08 20:16:45 [3443] receiving file list
   2017/03/08 20:16:45 [3443] sent 76 bytes  received 83 bytes  total size 349

【异常问题解决】
查看日志进行分析,编写rsync服务端hosts解析文件

10 rsync服务没有正确启动
【错误日志信息】

  Connection refused (111)

【错误演示过程】

  [root@oldboy-muban ~]#  rsync -avz /etc/hosts [email protected]::backup
   rsync: failed to connect to 172.16.1.41: Connection refused (111)
   rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]

【异常问题解决】

  [root@oldboy-muban ~]# rsync --daemon
   [root@oldboy-muban ~]# ss -lntup |grep rsync
   tcp    LISTEN     0      5                     :::873                  :::*      users:(("rsync",1434,5))
   tcp    LISTEN     0      5                      *:873                   *:*      users:(("rsync",1434,4))
   [root@oldboy-muban ~]# rsync -avz /etc/hosts [email protected]::backup
   Password: 
   sending incremental file list
   hosts  
   sent 196 bytes  received 27 bytes  49.56 bytes/sec
   total size is 349  speedup is 1.57

你可能感兴趣的:(综合架构备份服务)