综合架构-备份服务器

备份服务器的作用

  1. 数据备份的服务器
  2. 进行日志统一保存

如何部署搭建备份服务器:rsync服务

什么是resync服务

resync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的工具
增量:就是在原有的基础上增加

resync软件使用方法

rsync命令 1v4(一个命令可以替代四个命令)

rsync [选项] 要传输的文件 将文件传到哪
参数:
-r:递归复制数据,即传输目录级
-p:保持文件属性不变
  1. 本地备份数据 cp
[root@192 ~]# cp /etc/hosts /tmp/
[root@192 ~]# ls /tmp/hosts 
/tmp/hosts

使用cp命令将hosts文件备份到/tmp下

[root@192 ~]# rsync /etc/hosts /tmp/hosts_bak20211020
[root@192 ~]# ll /tmp/hosts_bak20211020 
-rw-r--r--. 1 root root 158 Oct 21 03:29 /tmp/hosts_bak20211020

使用rsync也可以将数备份到本地/tmp下

  1. 远程备份数据
[root@192 ~]# scp /etc/hosts 172.16.1.193:/tmp/backup
hosts                                                                                                                                                     100%  206     0.2KB/s   00:00
[root@193 backup]# ll /tmp/backup/hosts 
-rw-r--r-- 1 root root 206 Oct 20 19:32 /tmp/backup/hosts

scp将本地的本地的hosts文件同步到172.16.1.193/tmp/backup下

[root@192 ~]# rsync /etc/hosts 172.16.40.19:/tmp/backup/hosts_bak20211020
[root@193 backup]# ll /tmp/backup/hosts_bak20211020

使用rsync也可以将数备份到172.16.1.193/tmp/backup下

  1. 替代删除文件
[root@192 tmp]# rsync -r --delete /tmp/null/ 172.16.40.19:/tmp/backup/
[root@193 backup]# ll /tmp/backup/

–delete:实现无差异同步数据使远程的/tmp/backup/和/tmp/null一样,null是空文件从而实现删除

  1. 查看文件
[root@192 ~]# rsync /tmp/hosts_bak20211020
-rw-r--r--            158 2021/10/21 03:29:04 hosts_bak20211020

类似于ls -l命令

rsync服务部署安装过程

Linux系统安装部署服务流程:

  1. 下载安装软件 yum
  2. 编写配置文件
  3. 搭建服务环境 备份目录/目录权限
  4. 启动服务程序 开机自动启动
  5. 测试服务功能

rsync守护进程服务端部署方式

  1. 下载安装软件
[root@test01 ~]# rpm -qa|grep rsync #确认是否安装rsync软件
[root@test01 ~]# yum install rsync -y #安装rsync
  1. 编写配置文件
    vim /etc/rsyncd.conf
 uid = rsync    #指定管理备份目录的用户
 gid = rsync    #指定管理备份目录的用户组
 port = 873     #指定rsync备份服务的端口号
 fake super = yes    #将uid指定的虚拟用户伪装成为一个超级管理员
 use chroot = no      #和安全相关配置
 max connections = 200    #最大连接数 同时只能有200个客户端连接到备份服务器
 timeout = 300    #超时时间(s) 如果没有文件传输超过300s,自动断开连接
 pid file = /var/run/rsyncd.pid    #记录进程的PID,当程序停止时这个文件也不存在了
 lock file = /var/run/rsyncd.lock  #锁文件
 log file = /var/log/rsyncd.log    #rsync服务日志文件
 ignore errors                     #忽略传输中的简单错误
 read only = false                 #指定备份目录是可读可写
 list = false                      #开启列表功能,使客户端可以查看服务端的模块信息
 hosts allow = 192.168.184.0/24       #允许传输备份数据的主机(白名单)
 hosts deny = 0.0.0.0/32              #禁止传输备份数据的主机(黑名单)
 auth users = rsync_backup            #指定认证用户
 secrets file = /etc/rsync.password   #指定认证用户密码文件 用户名称:密码信息
 [backup]                             #模块信息
 comment = "backup dir"
 path = /backup                       #模块中配置参数 指定备份目录
  1. 创建rsync服务的虚拟用户
[root@test01 ~]# useradd rsync -M -s /sbin/nologin
  1. 创建备份服务认证密码文件
[root@test01 ~]# echo "rsync_backup:123456" > /etc/rsync.password
[root@test01 ~]# cat /etc/rsync.password
rsync_backup:123456
[root@test01 ~]# ll /etc/rsync.password  #密码文件权限过大其他用户也有读的权限
-rw-r--r--. 1 root root 20 Oct 22 04:27 /etc/rsync.password
[root@test01 ~]# chmod 600 /etc/rsync.password
[root@test01 ~]# ll /etc/rsync.password
-rw-------. 1 root root 20 Oct 22 04:27 /etc/rsync.password
  1. 创建备份目录
[root@test01 ~]# mkdir /backup
[root@test01 ~]# chown rsync.rsync /backup
  1. 启动备份服务
[root@test01 ~]# systemctl start rsyncd
[root@test01 ~]# systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
[root@test01 ~]# systemctl status rsyncd
● rsyncd.service - fast remote file copy program daemon
   Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-10-22 04:35:20 CST; 1s ago
 Main PID: 1729 (rsync)
   CGroup: /system.slice/rsyncd.service
           └─1729 /usr/bin/rsync --daemon --no-detach

Oct 22 04:35:20 test01 systemd[1]: Started fast remote file copy program daemon.
Oct 22 04:35:20 test01 systemd[1]: Starting fast remote file copy program daemon...
  1. 测试
[root@test02 ~]# rsync -avz /etc/hosts rsync_backup@192.168.184.128::backup
Password: 
sending incremental file list
hosts
rsync: chgrp ".hosts.HZ8wBG" (in backup) failed: Operation not permitted (1)

sent 154 bytes  received 124 bytes  111.20 bytes/sec
total size is 143  speedup is 0.51
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1179) [sender=3.1.2]
[root@test01 ~]# ll /backup/
total 4
-rw-------. 1 rsync rsync 143 Oct 22 05:10 hosts

注意要关闭selinux和防火墙

rsync的工作原理

rsync的工作原理图

  1. 客户端执行命令 rsync -avz /etc/hosts rsync_backup@192.168.184.128::backup
  2. 门口的锁问你的名字
  3. 你说出自己的用户名
  4. 问你的密码看看是否匹配
  5. 说出自己密码
  6. 进入服务端后又原本客户端来的用户变成rsync用户
  7. 在备份目录下写入数据

rsync: chgrp “.hosts.HZ8wBG” (in backup) failed: Operation not permitted (1)报错说明
在客户端的时候不是rsync用户,在写入客户端的时候因为是rsync操作,他想把文件属组和属主改成rsync但是他的权限不够大,所以改属组的时候会报错
解决方法:

  1. 在客户端上就将属主属组改成rsync
  2. 在/etc/rsyncd.conf中加入fake super = yes这个配置

rsync守护进程客户端部署方式

  1. 创建一个密码文件
[root@test02 test]# echo  "123456" > /etc/rsync.password
[root@test02 test]# chmod 600 /etc/rsync.password
  1. 进行免交互传输数据测试
[root@test02 test]# rsync -avz /etc/hosts rsync_backup@192.168.184.128::backup --password-file=/etc/rsync.password 
sending incremental file list
hosts

sent 154 bytes  received 43 bytes  131.33 bytes/sec
total size is 143  speedup is 0.73

rsync命令参数详细说明

命令参数详细说明
-v显示详细的传输信息
-a命令的归档参数,包含:rtopgDl
-r递归参数
-t保持文件属性信息时间信息不变(修改时间)
-o保持文件的属主信息不变
-g保持文件的属组信息不变
-p保持文件权限信息不变
-D保持设备文件信息不变
-l保持链接文件属性不变
-L保持链接文件数据信息不变
-P显示数据传输进度信息
- -exclude=PATTERN排除指定数据不被传输
- -exclude-from=file排除指定数据不被传输(批量排除)
- -bwlimit=RATE显示传输速率
- -delete无差异同步参数,必须和我一样

守护进程服务企业应用

守护进程多模块功能配置

在配置文件rsyncd.conf中增加模块的配置

 [dev]
        path = /dev_data
        comment = dev dir
 [ops]
        path = /ops_data
        comment = dev dir

创建相应的目录,并把属主属组设置成配置文件中的uid、gid

守护进程的排除功能

需要用到下面两个参数
- -exclude=PATTERN|排除指定数据不被传输
- -exclude-from=file|排除指定数据不被传输(批量排除)
案例:

  1. 在data目录下a目录整个备份,b目录1.txt不备份,c目录整个不备份
[root@test02 test]# rsync -avz /data --exclude=b/1.txt --exclude=c/ rsync_backup@192.168.184.128::backup --password-file=/etc/rsync.password 

相对路径时相对于/data目录,绝对路径也可以实现

  1. 在data目录下a目录整个备份,b目录1.txt不备份,c目录下的1.txt和3.txt不备份
    1、编辑好一个排除文件
[root@test02 test]# cat exclude.txt 
b/1.txt
c/1.txt
c/3.txt

2、编辑命令

[root@test02 test]# rsync -avz /data --exclude-from=exclude.txt rsync_backup@192.168.184.128::backup --password-file=/etc/rsync.password 

守护进程创建备份目录

当多台服务器备份同一个文件名,备份在同一个目录下,当一个目录下有一个文件那就无法备份了,希望在备份目录下创建一个子目录,区别多台服务器的备份
方法:

[root@test02 test]# rsync -avz /etc/hosts rsync_backup@192.168.184.128::backup/192.168.184.128/ --password-file=/etc/rsync.password 

在命令中的模块后面加上目录名,他就会在备份服务器上自动创建目录并备份。
ps:但是rsync没有创建多级目录的能力,没有mkdir -p那样的功能

守护进程的访问控制

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

  • 当配置文件中只有白名单的时候:
    首先看配置文件中白名单的配置的网段,如果白名单有的地址允许通过,如果没有的地址则一律不准通过
  • 当配置文件中只有黑名单的时候:
    首先看配置中黑名单的配置的网段,如果黑名单中有的地址则不准通过,如果没有的地址则一律允许通过
  • 当黑名单和白名单同时存在的时候:
    先看白名单的匹配机制,再看黑名单的匹配机制,如果在黑白名单都没有的IP,则默认允许通过
    白名单优先于黑名单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值