分享rsync+inotify实时同步实例教程
1.rsync
与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份的优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。
随着应用系统规模不断的扩大,对数据安全性和可靠性也提出了更高的要求,rsync在高端业务中也逐渐暴露出许多不足。首先,rsync实时同步时,需要扫描所有的文件进行比对,进行差量传输。如果文件数量打到了百万甚至千万量级,扫描所有的文件是非常耗时的,而且正在发生变化的往往是其中很少一部分,这是非常低效的方式。其次,rsync不能实时监测、同步数据。虽然它可以通过linux守护进程的方式进行出发同步,但是两次出发动作一定会有时间差,这样就导致了服务端和客户端出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify就出现了!
2.inotify(监控)
inotify是一种强大的、细粒度的、异步的文件系统事件监控机制。通过inotify可以监控文件系统中的添加、删除、修改、移动等各种细微事件,利用这个内核借口,第三方软件就可以监控文件系统下的各种情况变化,而inotify-tools就是这样的一个第三方软件。
一、服务端配置(只需要安装rsync)
共享到/tmp/下:
1.添加虚拟用户useradd rsync -s /sbin/nologin
chown -R rsync.rsync /tmp/
2.配置rsyncd.conf配置文件
vim rsyncd.conf
#rsync_config_______________start
#rsyncd.conf start##
uid = rsync(用户)
gid = rsync(用户)
use chroot = no(防止出现安全问题)
max connections = 200(有多少个客户端可以连接我这个备份服务器)
timeout = 300(超时,多长时间没有动作就断掉连接)
pid file = /var/run/rsyncd.pid(进程号,将进程号放在这个文件里)
lock file = /var/run/rsync.lock(相当于“锁”的概念,上厕所锁门的概念)
log file = /var/log/rsyncd.log(出错了,可以查看log日志文件)
[tmp](模块)
path = /tmp/(路径)
ignore errors(忽略错误)
read only = false(只读为假,可读,可写的意思)
list = false(不允许列表)
hosts allow = 10.0.0.0/24(允许的主机)
hosts deny = 0.0.0.0/32(拒绝的主机)
auth users = rsync_backup(支持虚拟用户)
secrets file = /etc/rsync.password(用户对应的密码文件)
#rsync_config_______________end
3.建立密码文件
echo “rsync_backup:123456” >/etc/rsync.password
凡是密码文件全部600权限 chmod 600 /etc/rsync.password
4.rsync --daemon daemon模式启动
5.将rsync --daemon加入/etc/rc.local
echo “/usr/bin/rsync --daemom” >>/etc/rc.local
二、客户端配置
安装rsync和inotify
1.安装rsync(yum安装即可)
2.建立密码认证文件
echo “123456” >/etc/rsync.password 只需要密码
设置权限600 chmod 600 /etc/rsync.password
3.安装inotify:
cd /home/cai/tools/
wget
54 tar xf inotify-tools-3.14.tar.gz
55 ls
56 cd inotify-tools-3.14
57 ./configure --prefix=/usr/local/inotify-tools-3.14
58 make && make install
59 yum install -y gcc
60 ./configure --prefix=/usr/local/inotify-tools-3.14
61 make && make install
62 cd /usr/local/inotify-tools-3.14/
63 ls
64 ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify
4.脚本都是放在/server/scripts下
vim /server/scripts/rsync.sh
#!/bin/sh
host=192.168.76.129
src=/tmp/
des=tmp
user=rsync_backup
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | \
while read files
do
/usr/bin/rsync -avz --delete $src $user@$host::$des --password-file=/etc/rsync.password
echo "${files} was rsynced" >>/var/log/rsyncd.log 2>&1
done
exit o
~
并给予764权限
测试脚本:sh -x /server/scripts/rsync.sh
运行脚本:sh /server/scripts/rsync.sh &
将rsync.sh脚本放入到开机启动项中:echo “/tmp/rsync.sh” >>/etc/rc.local
以上是分享rsync+inotify实时同步实例教程的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

一般来说,我们只需要同时使用耳机或者音响的其中一个设备,但是有些朋友反映在win11系统中,遇到了耳机和音响一起响的问题,其实我们可以在realtek面板中将它关闭,就可以了,下面一起来看一下吧。win11耳机和音响一起响怎么办1、首先在桌面上找到并打开“控制面板”2、进入控制面板,在其中找到并打开“硬件和声音”3、然后再找到一个喇叭图标的“Realtek高清晰音频管理器”4、选择“扬声器”再点击“后面板”进入扬声器设置。5、打开之后我们可以看到设备类型,如果要关闭耳机就取消勾选“耳机”,如果要

当您在您的同步文件夹中发现一个或多个项目与Outlook中的错误消息不匹配时,这可能是因为您更新或取消了会议项目。这种情况下,您会看到一条错误消息,提示您的本地数据版本与远程副本存在冲突。这种情况通常发生在Outlook桌面应用程序中。您同步的文件夹中的一个或多个项目不匹配。若要解决冲突,请打开这些项目,然后重试此操作。修复同步的文件夹中的一个或多个项目不匹配Outlook错误在Outlook桌面版中,当本地日历项与服务器副本发生冲突时,可能会遇到问题。不过,幸运的是,有一些简单的方法可以帮助您

随着互联网技术的不断发展,实时视频流已经成为了互联网领域的一个重要应用。要实现实时视频流播放,其中的关键技术包括WebSocket和Java。本文将介绍如何结合使用WebSocket和Java实现实时视频流播放,并提供相关的代码示例。一、什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工通信的协议,它在Web

利用C++实现嵌入式系统的实时音视频处理功能嵌入式系统的应用范围越来越广泛,尤其在音视频处理领域的需求日益增长。面对这样的需求,利用C++语言实现嵌入式系统的实时音视频处理功能成为一种常见的选择。本文将介绍如何使用C++语言开发嵌入式系统的实时音视频处理功能,并给出相应的代码示例。为了实现实时音视频处理功能,首先需要理解音视频处理的基本流程。一般来说,音视频

基于JavaScript构建实时聊天室随着互联网的快速发展,人们越来越注重即时通讯和实时互动体验。而实时聊天室作为一种常见的即时通讯工具,对于个人和企业来说都非常重要。本文将介绍如何使用JavaScript构建一个简单的实时聊天室,并提供相应的代码示例。我们首先需要一个前端页面作为聊天室的UI界面。以下是一个简单的HTML结构示例:<!DOCTYPE

基于JavaScript构建实时股票行情展示导言:随着金融市场的不断发展,实时股票行情的展示对于投资者和交易员来说变得愈发重要。在现代化交易平台中,提供一个实时股票行情展示的功能是必不可少的。本文将介绍如何使用JavaScript和一些相关的技术构建一个简单的实时股票行情展示的应用。准备工作在开始之前,需要准备以下工作:一个基于HTML和CSS的网页框架一个

JavaScript和WebSocket:打造高效的实时天气预报系统引言:如今,天气预报的准确性对于日常生活以及决策制定具有重要意义。随着技术的发展,我们可以通过实时获取天气数据来提供更准确可靠的天气预报。在本文中,我们将学习如何使用JavaScript和WebSocket技术,来构建一个高效的实时天气预报系统。本文将通过具体的代码示例来展示实现的过程。We

现场活动是跟上即将到来的订单、体育比赛等的好方法。这种新的通知方式是在iOS16发布时首次引入的,它旨在改进通知传递到iPhone的方式。任何提供实时数据的应用程序都可以利用实时活动,许多流行的用途是跟踪挂单、正在进行的比赛的分数、天气数据、即将到来的直播等等。实时活动始终显示在您的通知中心,甚至在待机模式下(如果您已启用待机模式并且您的iPhone已插接)。但是,您可能希望在使用AppleTV时停用“实时活动”,以获得不间断的体验。以下是您在iPhone上执行此操作的方法。如何禁用苹果电视的实
