当前位置: 首页 > news >正文

Rsync+inotify+nfs实现数据实时备份方案

技术栈
  • NFS是 Network File System的简写,即网络文件系统。NFS的优点是内核直接支持,部署简单、运行稳定,协议简单、传输效率高。缺点是仅依靠IP地址或主机名来决定用户能否挂载共享目录,容易出现单点故障。

  • rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

  • Inotify是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。通过inotify实现数据的时时同步,所需要的应用软件inotify-tool。

机器准备
  • 10.7.11.9 (nfs节点)

  • 10.7.11.5 (备份节点)

  • 注意:关闭机器的防火墙 - systemctl stop firewalld

一、部署 nfs 服务器
  • 安装nfs-server

#nfs-utils:提供了NFS服务器程序和对应的管理工具 
#rpcbind:获取nfs服务器端的端口等信息
yum install -y nfs-utils rpcbind
# k8s node 节点需要安装nfs客户端
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
  • 修改配置

#创建目录
mkdir -p /home/nfs-root/
​
#/home/nfs-root/表示要共享文件的目录 
# *表示所有客户端可访问,也可以写成指定IP网段或者具体的ip
#rw:表示读写权限,sync:表示数据同步写入内存硬盘,no_root_squash 会使得根用户在 NFS 客户端上拥有和服务器上相同的权限
/home/nfs-root/ *(insecure,rw,sync,no_root_squash)
  • 保存,使生效

#wq
exportfs -a
exportfs

二、部署 Rsync 服务端(10.7.11.5 )
  • 下载 Rsync 软件包

yum -y install rsync
  • 新增 vi /etc/rsyncd.conf 配置文件

​
#用户id
uid = root
#组id
gid = root
#程序安全设置
use chroot = no
#客户端连接数
max connections = 200
#进程号文件位置
pid file = /var/run/rsyncd.pid
#进程锁文件位置
lock file = /var/run/rsync.lock
#日志文件位置
log file = /var/run/rsyncd.log
#连接超时时间
timeout = 300
#3.1版本以上要加这个
fake super = yes
​
#模块名称
[backup]
#同步数据的目录
path = /backup
#有错误时忽略
ignore errors
#只读模式(true为只读,false为可读可写)
read only = false
#阻止远程列表
list = false
#允许访问的IP
hosts allow = 10.7.11.0/24
#禁止访问的IP
hosts deny = 0.0.0.0/32
#虚拟用户
auth users = rsync_backup
#存放用户和密码的文件
secrets file = /etc/rsync.password
  • 创建密码文件 vi /etc/rsync.password

rsync_backup:123456
  • 修改 /etc/rsync.password 权限

chmod 600 /etc/rsync.password
  • 创建程序用户 rsync

useradd -M -s /sbin/nologin rsync
  • 创建 / backup 目录

mkdir /backup
  • 守护进程启动 rsync

rsync --daemon
三、部署Rsync 客户端(10.7.11.9)
  • 客户端节点新增密码文件 vi /etc/rsync.password

123456
  • 修改 / etc/rsync.password 权限

chmod 600 /etc/rsync.password
  • 测试 ,将inotify.sh文件传输至服务端

rsync -zav inotify.sh rsync_backup@10.7.11.5::backup --password-file=/etc/rsync.password

  • 去服务节点查看

三、部署 inotify 服务
  • 下载阿里云网络源

# 首先备份系统自带『yum 源配置文件』,具体路径为:/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# CentOS 7 
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • 更新 yum 源

yum clean all
yum makecache
  • 下载 inotify-tools 工具包

yum -y install inotify-tools
  • 编写 inotify.sh 脚本

backupServer=10.7.11.5
path=/home/nfs-root
inotifywait -mrq --format '%w%f' -e create,close_write,delete $path | while read line
doif [ -f $line ];thenrsync -za $line --delete rsync_backup@$backupServer::backup --password-file=/etc/rsync.passwordelsecd $pathrsync -za ./ --delete rsync_backup@$backupServer::backup --password-file=/etc/rsync.passwordfi
done
  • 后台启动脚本

sh inotify.sh &
  • 测试数据同步

相关文章:

  • 内网im,局域网环境下BeeWorks 如何保障数据安全?
  • 昇腾CANN集合通信技术解读——细粒度分级流水算法
  • C++ 类基础:封装、继承、多态与多线程模板实现
  • 突然无法调用scikit-learn、xgboost
  • 【Ubuntu崩溃修复】
  • 新品推广的四个阶段,做好新品推广从这四个方面出发
  • 【机械视觉】Halcon—【十二、边缘提取】
  • 达梦数据库CASE WHEN条件
  • PP-OCRv5 ubuntu20.04 OCR识别服务
  • 博科FC交换机管理IP地址用户名密码
  • MCP和Function Calling
  • SpringCloud优势
  • 力扣面试150题--蛇梯棋
  • Linux初步介绍
  • C#中LINQ技术:自然语言集成与统一数据操作的艺术
  • 【题解-洛谷】B4292 [蓝桥杯青少年组省赛 2022] 路线
  • 3D Web轻量化引擎HOOPS Communicator赋能一线场景,支持本地化与动态展示?
  • C语言中的段错误(Segmentation Fault):底层原理及解决方法
  • 蓝桥杯 回文日期
  • BIO、NIO、AIO的区别
  • 怎样增加网站流量/深圳推广优化公司
  • 小程序源码资源/小红书seo排名规则
  • 媒体广告投放平台/windows优化大师卸载不了
  • 做门户网站需要具备什么/360上网安全导航
  • 如何下载js做的网站/长尾关键词什么意思
  • 成都游戏网站建设/seo网站推广企业