rsync结合 inotfiy 实现实时备份的问题
1. 简介
rsync简介:
rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步
Inotify简介:
Inotify 是一种强大的、异步的文件系统事件监控机制,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况
2. 实验环境:
| ip地址 | 角色 |
|---|---|
| 192.168.153.180 | 备份源 sync client + inotify |
| 192.168.153.181 | 备份端 rsync server |
两台机器均关闭防火墙和selinux
关闭防火墙
systemctl stop firewalld
关闭selinux
setenforce 0
3. 配置备份端主机(181主机)
3.1 安装rsync工具
yum -y install rsync
3.2 修改rsync配置文件:
vim /etc/rsyncd.conf
修改后内容如下:(!复制之后删掉注释才可使用,不然格式会有问题)
uid=root gid=root use chroot = no max connections = 10 strict modes = yes pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log [rsync] path = /opt #备份路径 comment = rsync ignore errors #跳过错误 read only = no #读 write only = no #写 hosts allow = 192.168.153.180 #备份源ip list = false auth users = rsync_user #用户
3.3 创建密码文件并修改权限 创建文件
echo "rsync_user:123" > /etc/rsync.password
修改权限
chmod 600 /etc/rsync.password
3.4 启动rsync并查看端口验证
启动
rsync --daemon
验证
netstat -ntlp|grep 873 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1583/rsync tcp6 0 0 :::873 :::* LISTEN 1583/rsync
4. 配置备份源端(180主机)
4.1 安装epel源和所需工具
先安装epel源
yum -y install epel-release
再安装所需工具
yum -y install inotify-tools rsync
4.2 只需要设置rsync同步密码即可,不用重设用户名 创建文件
echo "123" > /etc/rsync.password
修改权限
chmod 600 /etc/rsync.password
4.3 编写inotify监控脚本如下:
vim inotify.sh
#!/bin/bash
ip=192.168.153.181 #备份端ip
src=/opt/rsync_src #数据目录
dst=rsync
user=rsync_user # 用户
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${src} | while read file
do
rsync -vzrtopg --delete --progress $src $user@$ip::$dst --password-file=/etc/rsync.password > /dev/null && echo "$src was rsyncd"
done
3.4 创建源目录
mkdir /opt/rsync_src
3.5 执行脚本检测
sh inotify.sh
3.6 新开窗口在源目录下创建文件
cd /opt/rsync_src echo 111 > 1.txt echo 222 > 2.txt
3.7 在备份端查看新创建的两个文件已经同步过来
ls /opt/rsync_src/ 1.txt 2.txt
3.8 在备份源端删除1.txt文件
cd /opt/rsync_src rm -f 1.txt
在备份端查看已经同步删除
ls /opt/rsync_src/ 2.txt
到此这篇关于rsync结合 inotfiy 实现实时备份的文章就介绍到这了,更多相关rsync结合 inotfiy 实现实时备份内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
相关文章

集成系统级Claw模式! Deepin 官宣发布 25.1 版本
deepin操作系统发布了最新的 25.1 版本更新,该版本基于 deepin 25 正式版积累的多轮内测成果,在 AI 能力、内核版本、桌面环境、文件管理器以及系统安全等方面进行了更新2026-04-13
又一代老硬件退场! Linux 内核正式放弃Intel 486 CPU
在过去的几十年间,CPU 的架构已经经历了飞速发展,x86 系列就是其中之一,而 i486 则属于该系列中的一个,当前,i486 的CPU处理器已经够老,从 Linux 7.1 开始将不再有对2026-04-09
我把 Linux 中最常用、最实用、最常被问到的命令按照实际使用场景分类整理,方便你快速查阅和记忆,内容覆盖日常运维、开发调试、性能分析、文件处理、网络、安全、系统管2026-04-08
一分钟内检查Linux服务器性能? 9个性能检测常用的基本命令
今天我们来看看Linux系统中用于性能监控的一系列命令,这些命令可以快速查看机器的负载情况,详细请看下文介绍2026-03-18
Linux作为操作系统领域灵活性和可定制性的基石,提供了大量满足不同用户需求的发行版,今天分享适合高级用户的15款Linux发行版2026-03-10
开箱即用? 这4个高手级Linux发行版远没你想象的那么安全易用
如果你正在纠结用哪个发行版?零基础新手别被“高端”“极客”“声明式”这些词冲昏头脑,先用好用的,再慢慢进阶2026-03-10
这几款SSH工具真的够用了! Linux好用的ssh工具推荐
在Linux上使用SSH,您需要安装一个SSH客户端,今天整理找到的8 款 SSH / 终端工具,从免费开源到企业级商用,从轻量化命令行到一站式工具箱,每款都做了介绍与对比,希望能2026-03-09
在Linux系统下有两种用户,即高级用户root,普通用户,高级用户root可以在系统中做任何事情,普通用户仅可在Linux系统中做有限的事情,下面我们就来看看切换方法2026-02-28
揭秘当前登录用户的身份! Linux中使用logname命令的技巧
logname命令就是这样一个简单但强大的工具,它能帮助我们轻松获取当前登录用户的用户名,今天,我们就来深入探索一下这个命令的工作原理、使用方法和最佳实践2026-02-26
在 Linux 系统中,DNS 缓存是一种将域名和 IP 地址映射关系缓存在本地的机制,可以加快域名解析速度,并减轻 DNS 服务器的负载2026-02-26




最新评论