首页 运维 linux运维 分享rsync+inotify实时同步实例教程

分享rsync+inotify实时同步实例教程

Jun 20, 2017 am 11:57 AM
同步 实时

1.rsync

与传统的cptar备份方式相比,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

 

 

 

二、客户端配置

 

安装rsyncinotify

 

1.安装rsyncyum安装即可)

 

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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1663
14
CakePHP 教程
1420
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
解决win11中同时播放耳机和音响的问题 解决win11中同时播放耳机和音响的问题 Jan 06, 2024 am 08:50 AM

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

您同步的文件夹中的一个或多个项目不匹配Outlook错误 您同步的文件夹中的一个或多个项目不匹配Outlook错误 Mar 18, 2024 am 09:46 AM

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

Java和WebSocket的结合:如何实现实时视频流播放 Java和WebSocket的结合:如何实现实时视频流播放 Dec 17, 2023 pm 05:50 PM

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

利用C++实现嵌入式系统的实时音视频处理功能 利用C++实现嵌入式系统的实时音视频处理功能 Aug 27, 2023 pm 03:22 PM

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

基于JavaScript构建实时聊天室 基于JavaScript构建实时聊天室 Aug 10, 2023 pm 11:18 PM

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

基于JavaScript构建实时股票行情展示 基于JavaScript构建实时股票行情展示 Aug 08, 2023 am 08:03 AM

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

JavaScript和WebSocket:打造高效的实时天气预报系统 JavaScript和WebSocket:打造高效的实时天气预报系统 Dec 17, 2023 pm 05:13 PM

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

如何在iPhone上的苹果电视应用程序上禁用实时活动 如何在iPhone上的苹果电视应用程序上禁用实时活动 Jun 29, 2023 pm 01:50 PM

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

See all articles