备份服务器搭建

news2024/11/15 20:02:15

备份服务器搭建

  • 1、背景
  • 2、作用
  • 3、选型
  • 4、环境
  • 5、部署
    • 5.1、服务端部署
      • 5.1.1、安装
      • 5.1.2、配置
    • 5.2、客户端部署
    • 5.3、备份策略
      • 5.3.1、定时备份策略
      • 5.3.2、文件变动备份
  • 6、参考

1、背景

随着项目的推进,备份服务器被提上了工作日程,等保、密评和接入测评对备份服务器都提出了要求。
数据备份的意义就在于,当受到网络攻击、入侵、电源故障或者操作失误等事故的发生后,可以完整、快速、简捷、可靠地恢复原有系统,在一定的范围内保障系统的正常运行。
标准的可以认为比较安全的数据备份策略,应当是一份本地一份远程,根据数据重要程度,长则每天,短则每小时备份一次。因为数据库目前采用了云服务商提供的RDS服务,服务自带数据备份功能,所以本篇针对服务器上的应用服务的备份搭建。
不同机房和不同网络区域采取本地备份和远程交叉备份的方式备份数据
在这里插入图片描述

2、作用

备份服务器允许您制作数据、文件或应用程序的副本。备份涉及用于存储的硬件和软件以及检索服务。如果定期进行——数据安全专家建议每天至少备份一次——这对于最大限度地减少因数据丢失而造成的业务中断大有帮助。

备份规则:

  • 至少复印3份
  • 存储在2种不同的媒体类型上
  • 异地至少保存1份

3、选型

备份服务器选用rsync服务搭建,Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具, rsync 在 GNU 通用公共许可证下免费提供,目前由 Wayne Davison 维护。

工作方式

Rsync大致使用三种主要的传输数据的方式:

  • [本地传输模式] 单个主机本地之间的数据传输(此时类似于cp命令的功能)
  • [远程shell传输模式] 借助rcp,ssh等通道来传输数据(此时类似于scp命令的功能)
  • [守护进程模式] 以守护进程(socket)的方式传输数据(这个是rsync自身的重要的功能)

4、环境

序号项目版本
1CentOS Linux release7.6.1810 (Core)
2Rsyncversion 3.1.2

5、部署

部署采用同一个网络下,一台服务端多台客户端的方式进行部署操作。
在这里插入图片描述

5.1、服务端部署

5.1.1、安装

查看服务器是否安装rsync

# rpm -qa rsync
rsync-3.1.2-10.el7.x86_64

注意:一般的系统部署好yum仓库后,rsync服务是自动安装好的,所以可以使用rpm -qa rsync直接查看是否已经安装。如果已经安装,则不需要执行此步骤。如果输入以上命令后查询不到任何信息,则需要安装rsync服务。

 yum install -y rsync

创建用户

useradd rsync -s /sbin/nologin -M

-M 指定此用户为虚拟用户

-s 指定此用户的解释器

/sbin/nologin 指此用户无法登陆

创建目录,如果有目录可不用创建

mkdir /data/rsync

目录赋权限

chown -R rsync:rsync /data/rsync

5.1.2、配置

配置主要围绕rsync守护进程的配置文件/etc/rsyncd.conf调整

备份配置文件

[root@backuphost backup]# cp /etc/rsyncd.conf{,.bak}

调整备份文件

uid = rsync 	# 指定用户
gid = rsync		# 指定用户组
use chroot = no	# 安全相关配置
timeout = 300	# 超时时间,客户端超过300秒没有发送数据,服务器断开连接
ignore errors	# 忽略传输中的简单错误
list = false	# 客户端查看服务端的模块信息
max connections = 46	# 最大连接数
fake super = yes		# 将rsync虚拟用户伪装成一个超级管理员用户
read only = false		# 指定备份目录可读可写

pid file = /var/run/rsyncd.pid	# 进程信息标识
lock file = /var/run/rsync.lock	# 锁文件
log file = /var/log/rsyncd.log	# 日志文件

hosts allow = 172.30.1.0/24		# 允许传输设备备份的主机(白名单)
hosts deny = 0.0.0.0/32			# 禁止传输设备备份的主机(黑名单)
secrets file = /etc/rsync.password # 认证用户密码文件 格式用户名:密码 密码不超过8位

[backup]	# 模块名称
path = /data/rsync		# 指定服务端备份目录

创建备份服务器的认证密码文件

echo 'rsync:Xyyyzz@1' > /etc/rsync.pasword
chmod 600 /etc/rsync.password

启动备份服务

systemctl restart rsyncd	# 启动rsync服务
systemctl enable rsyncd		# 让rsync服务开机自启动

查看端口

$ netstat -nltp
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::873                  :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 ::1:25                  :::*                    LISTEN      - 

防火墙放行服务

firewall-cmd --permanent --add-service=rsyncd
firewall-cmd --reload

外部放行

外部放行是指云服务器的安全组规则中放行该服务或者端口,以下以某某云举例
在这里插入图片描述

5.2、客户端部署

启动服务

systemctl start rsyncd

如果启动失败,安装服务

yum install -y rsync

创建密码文件

echo 'rsync:Xyyyzz@1' > /etc/rsync.pasword
chmod 600 /etc/rsync.password

数据交互

rsync -avz /etc/hosts rsync@172.30.1.5:backup --password-file=/etc/rsync.password

参数说明

img

*“–exclude”、"–exclude-from"排除命令要注意一下,当你想备份某目录文件,但此目录下有些文件你想排除掉,可以用这两个命令。要注意的是这两个参数后面跟着的要排除的文件的路径一定从要备份的目录下面开始写,不能直接用绝对路径,否则排除不成功。

5.3、备份策略

备份策略按数据和业务不同,分别配置不同的备份策略:

  • 数据按每天备份一次
  • 业务按每个月备份一次
  • 每次业务更新备份一次

5.3.1、定时备份策略

服务端创建备份文件夹

mkdir -p /data/rsync/xxzz

客户端执行备份命令

rsync -avz /etc/hosts rsync@xxx.yy.x.yyy::backup /data/rsync/xxzz --password-file=/etc/rsync.password

服务端验证

[backup@backuphost ~]$ cd /data/rsync/xxzz
[backup@backuphost xxzz]$ ls
hosts
[backup@backuphost xxzz]$

在客户端创建定时任务,定时将文件备份至服务端

每月的1日的3点开始备份文件

crontab -e
00 03 01 * * rsync -avz /etc/hosts rsync@xxx.yy.x.yyy::backup /data/rsync/xxzz --password-file=/etc/rsync.password

以上完成了,业务文件的定时备份操作。

5.3.2、文件变动备份

接下来介绍 inotify 监控文件变动,来实现实时同步。

rsync 不能实时的去监测、同步数据,虽然它可以通过 linux 守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。
可以使用 rsync+inotify 的组合来解决,可以实现数据的实时同步。

1、安装inotify

yum install -y inotify-tools

2、常用参数

-m,–monitor:始终保持事件监听状态   # 重要参数
-r,–recursive:递归查询目录     # 重要参数
-q,–quiet:只打印监控事件的信息     # 重要参数
–excludei:排除文件或目录时,不区分大小写
-t,–timeout:超时时间
–timefmt:指定时间输出格式  # 重要参数
–format:指定时间输出格式       # 重要参数
-e,–event:后面指定删、增、改等事件 # 重要参数

3、inotifywait events 事件

access:读取文件或目录内容
modify:修改文件或目录内容
attrib:文件或目录的属性改变
close_write:修改真实文件内容   # 重要参数
close_nowrite:文件或目录关闭,在只读模式打开之后关闭的
close:文件或目录关闭,不管读或是写模式
open:文件或目录被打开
moved_to:文件或目录移动到
moved_from:文件或目录从移动
move:移动文件或目录移动到监视目录  # 重要参数
create:在监视目录下创建文件或目录  # 重要参数
delete:删除监视目录下的文件或目录  # 重要参数
delete_self:文件或目录被删除,目录本身被删除
unmount:卸载文件系统

4、常用命令
创建事件

inotifywait -mrq  /data/ywcx/web --timefmt "%d-%m-%y %H:%M" --format "%T %w%f 事件信息: %e" -e create

修改事件

inotifywait -mrq  /data/ywcx/web --timefmt "%d-%m-%y %H:%M" --format "%T %w%f 事件信息: %e" -e close_write

删除事件

inotifywait -mrq  /data/ywcx/web --timefmt "%d-%m-%y %H:%M" --format "%T %w%f 事件信息: %e" -e delete

5、脚本监控

#!/bin/bash

Path=/data/rsync/test
Server=192.168.0.2
User=rsync
module=sync_file

monitor() {
  /usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete $1 | while read line; do
    if [ -f $line ]; then
      rsync -avz $line --delete ${User}@${Server}::${module} --password-file=/etc/rsync.password
    else
      cd $1 &&
        rsync -avz ./ --delete ${User}@${Server}::${module} --password-file=/etc/rsync.password
    fi
  done
}

monitor $Path;

直接将脚本在后台启动,就可以监控文件的变化了,从而实现服务器之间的文件同步。

6、参考

备份服务器的部署

备份服务器(使用rsync搭建)

linux rsync指定用户名和密码的方式同步

rsync + inotify 实现文件实时双向自动同步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/907792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三层交换机实验

要求: 目录 1、IP规划 2、交换机的配置 2.1 Eth-Trunk通道(将多个接口逻辑的整合成一个接口,实现带宽叠加的作用) 2.2 创建VLAN(所有交换机只创建VLAN2,默认有VLAN1) 2.3 创建trunk干道…

PHP“牵手”拼多多商品详情数据获取方法,拼多多API接口批量获取拼多多商品详情数据说明

拼多多商品详情接口 API 是开放平台提供的一种 API 接口,它可以帮助开发者获取拼多多商品的详细信息,包括商品的标题、描述、图片等信息。在拼多多电商平台的开发中,拼多多详情接口 API 是非常常用的 API,因此本文将详细介绍拼多多…

6.RocketMQ之文件查询索引文件IndexFile

根据消息ID来查找消息,consumequeue 中没有存储消息ID,如果不采取其他措施,又得遍历 commitlog文件了,indexFile就是为了解决这个问题的文件。 如图所示: 一个indexFile对应一个40个字节的IndexHead。(40,2000 0000]区间代表存放…

【深入解析:数据结构栈的魅力与应用】

本章重点 栈的概念及结构 栈的实现方式 数组实现栈接口 栈面试题目 概念选择题 一、栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数…

行政区划表设计和多级查询

简介 行政区划的表为一个多层级结构,设计大同小异,大致结构如下所示 其中,code为区划编号(主键),parent_code为父区划编号,ancestors为祖区划编号,查询也主要围绕前两个展开。 查询…

【后端】Core框架版本和发布时间以及.net 6.0启动文件的结构

2023年,第35周,第1篇文章。给自己一个目标,然后坚持总会有收货,不信你试试! .NET Core 是一个跨平台的开源框架,用于构建现代化的应用程序。它在不同版本中有一些重要的区别和发布时间 目录 一、Core版本和…

新研究:Gartner 公有云成本管理框架

2023年6月28日,Gartner 出版了名为《Beyond FinOps: the Gartner Framework for Public Cloud Financial Management》的公有云成本管理框架,旨在帮助企业/组织应对公有云支出的挑战,同时抓住新机遇,推动更有效的 IT 使用。新框架…

【HCIP】05.OSPF邻居与邻接关系

报文 OSPF头部 报文头部中影响邻居关系建立的字段是Router ID、Area ID、AuType HELLO报文 报文中影响建立邻居关系到是 hello time时间,DR优先级等 DD报文 序列号,LSA头部摘要信息I位:第一个报文,用于主从选举M位:…

跨境电商企业新宠Telegram使用指南,这个功能你不能忽视

Telegram是一款消息传递应用,以其隐私和安全性以及作为移动应用的易用性而闻名。截至 2023年 6月,它拥有超过7亿月活跃用户,是全球下载量排名前五的应用之一。随着其受欢迎程度的不断提高,该渠道正在全球企业中得到认可。让我们来…

Apache Doris 入门教程34:Join 优化

Bucket Shuffle Join Bucket Shuffle Join 是在 Doris 0.14 版本中正式加入的新功能。旨在为某些 Join 查询提供本地性优化,来减少数据在节点间的传输耗时,来加速查询。 它的设计、实现和效果可以参阅 上面的图片展示了Bucket Shuffle Join的工作原理…

ES 索引重命名--Reindex(一)

ES reindex脚本流程,下图为整体流程: 步骤(1):每次写入把之前的索引删除再重新创建索引,然后判断索引是否创建成功,由于创建成功返回结果是json,因此用Json Input插件去解析json获得…

(三)行为模式:4、迭代器模式(Iterator Pattern)(C++示例)

1、迭代器模式(Iterator Pattern)含义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而不暴露该对象的内部表示。【DP】 通过使用迭代器模式,可以将遍历算法与集合对象解耦…

pytorch内存泄漏

问题描述: 内存泄漏积累过多最终会导致内存溢出,当内存占用过大,进程会被killed掉。 解决过程: 在代码的运行阶段输出内存占用量,观察在哪一块存在内存剧烈增加或者显存异常变化的情况。但是在这个过程中要分级确认…

IT运维:使用数据分析平台监控 Nginx 服务

Nginx 是一种流行的 HTTP 服务器和反向代理服务器。作为 HTTP 服务器,Nginx 可以非常有效和可靠地提供静态内容;作为反向代理,它可以用作多个后端服务器或其他应用程序(例如缓存和负载平衡)的单个访问入口。 Nginx 同时…

3分钟教你如何选防水劳保鞋

防水劳保鞋是防止水渗透鞋子造成湿漉漉感觉的安全防护鞋,主要用于地面积水或有溅水的作业场景。前面的文章中与大家简单介绍了防水劳保鞋,其实选购防水劳保鞋也是有窍门的。一双质量好的防水劳保鞋可以为工人的工作效率添砖加瓦,反之&#xf…

【2021年遇到最头疼的Bug】【Alibaba中间件技术系列】「RocketMQ技术专题」Broker配置介绍及发送流程、异常(XX Busy)问题分析总结

背景介绍 公司最近年底要对系统做一次大的体检,所以是不测不知道,一测吓一跳啊,出现了很多问题,其中最恶心的问题要数我们的ROCKETMQ消息队列的问题了,大家都知道消息队列是作为流量削峰的主要手段,负责系…

C++基础Ⅰ编译、链接

目录儿 1 C是如何工作的1.1 预处理语句1.2 include1.3 main()1.4 编译单独编译项目编译 1.5 链接 2 定义和调用函数3 编译器如何工作3.1 编译3.1.1 引入头文件系统头文件自定义头文件 3.1.2 自定义类型3.1.3 条件判断拓展: 汇编 3.2 链接3.2.1 起始函数3.2.2 被调用的函数 3.3 …

C++新经典09--函数新特性、inline内联函数与const详解

函数回顾与后置返回类型 函数定义中如果有形参则形参应该有名字,而不光是只有类型,但是如果并不想使用这个形参,换句话说这个形参并不在这个函数中使用,则不给形参名也可以,但在调用这个函数的时候,该位置…

什么情况下,亚马逊账户会被判滥用?

如果说有对亚马逊跨境电商有所了解的朋友就会知道,现在亚马逊跨境电商的规则是十分严格的,亚马逊开店变得越来越困难,尤其是要想成功的把一个亚马逊店铺给开好。 这几年不少有一些违规的亚马逊卖家都被系统检测到了,如果说被系统…

投资者的秘密武器,代理IP在金融决策中的驱动作用

在如今数据为王的时代,无论从事哪个行业,都需要使用数据分析来指导自己的决策,而这些数据又是从哪里来的呢?很多人都知道,数据采集可以帮助我们将分散在互联网各个网站上的大量数据集中起来。对于金融行业来说&#xf…