rsync结合 inotfiy 实现实时备份的问题
1. 简介
搞服务器运维的,手里没几件趁手的工具可不行。今天咱们就来聊聊数据同步和监控领域的两个“老伙计”:rsync 和 Inotify。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
rsync是个什么角色?
简单说,它是Linux系统下一款非常高效的数据镜像备份工具。速度快是它最大的特点,尤其擅长增量备份。不管你是想本地复制,还是想通过SSH、甚至专门的rsync服务进行远程同步,它都能轻松胜任。
那Inotify又起什么作用?
如果说rsync负责“搬东西”,那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安装:
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守护进程了:
rsync --daemon
怎么确认服务真的跑起来了?检查一下它默认监听的873端口状态就知道了:
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源和所需工具
我们需要安装inotify-tools,而它通常在EPEL源里。所以先装上EPEL源:
yum -y install epel-release
然后一次性把需要的工具都装上:
yum -y install inotify-tools rsync
4.2 配置rsync同步密码
源端作为客户端,不需要完整的服务端配置,但需要知道访问备份端的密码。注意,这里只写密码,不用用户名:
echo "123" > /etc/rsync.password
同样,权限必须设置为600:
chmod 600 /etc/rsync.password
4.3 编写inotify监控脚本
重头戏来了!我们将编写一个脚本,让inotifywait实时监控目录,一旦有变化,就立刻触发rsync同步。这才是实现“实时”的关键。
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 在备份端验证
立刻切换到备份端(181主机),检查目标目录。怎么样?两个新文件应该已经静静地躺在那里了:
ls /opt/rsync_src/ 1.txt 2.txt
3.8 测试文件删除同步
实时同步,当然也得包括删除操作。回到源端,删掉其中一个文件:
cd /opt/rsync_src rm -f 1.txt
再次查看备份端,你会发现,不仅仅是新增,连删除操作也被完美同步过去了:
ls /opt/rsync_src/ 2.txt
至此,一个基于Inotify和Rsync的简易实时同步系统就搭建并验证完成了。你可以看到,从文件创建到删除,所有操作都近乎实时地反应在了备份端。这,就是组合工具的威力。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
CentOS增加系统回收站功能介绍
Linux“回收站”机制:给rm命令加一道保险 在Linux系统里,用过rm命令的朋友大概都深有体会:文件一旦删除,想恢复可就麻烦大了。即便费尽周折找回,文件名也往往变成了一串难以辨认的数字,实用性大打折扣。 有没有办法像Windows那样,给命令行也装上一个“回收站”呢?答案是肯定的。今天就来分享
centos7下如何安装xrdp?
1 安装xrdp 开始之前,得先确定一下你系统的位数。在命令行里输入 arch 看看结果:如果是32位系统,后续就选i386架构的包;如果是64位,则对应x86_64。这一点很重要,因为epel软件包的名字会随之变化。 怎么找对包呢?有个很直接的方法:访问中科大的镜像站 http: mirrors
Centos安装nmon讲解
安装 首先,准备好目录。创建一个专门的位置来存放nmon,通常放在 usr local nmon 是个不错的选择: mkdir usr local nmon 接着,进入这个目录: cd usr local nmon 然后,从官方源获取适用于Linux的14i版本安装包: wget http:
Centos8怎么进行复位清屏? Centos8终端复位清屏的技巧
终端窗口一团乱?试试CentOS 8的复位与清屏功能 用过命令行的朋友都知道,终端里命令输多了,屏幕常常会变得杂乱不堪。这时候,一个清爽的界面就非常有必要了。不同系统清屏的命令各异:在DOS或Windows的CMD里,输入cls回车就好;到了Linux世界,常用的则是clear命令。那么在CentO
linux系统怎么增加swap交换分区?
Linux系统怎么增加SWAP交换分区?手把手教你搞定 系统用着用着突然变慢,甚至开始卡顿?很多时候,这可能是物理内存不足导致的。这时候,增加或优化SWAP交换分区,就是一个非常有效的“急救”手段。今天,我们就一步步来实操,看看在Linux系统里如何安全、高效地增加SWAP交换空间。 一、创建并启用
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

