文件同步及实现简单监控

1. 软件简介

rsync

rsync 是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程 数据同步备份的优秀工具。在同步备份数据时,默认情况下,Rsync 通过其 独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文 件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的 参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现 快速的同步备份数据 

inotify-tools

Inotify 是一种强大的,细粒度的。异步的文件系统事件监控机制,linux 内核 从 2.6.13 起,加入了 Inotify 支持,通过 Inotify 可以监控文件系统中添加、 删除,修改、移动等各种事件,利用这个内核接口,第三方软件就可以监控文 件系统下文件的各种变化情况,我们也是基于此功能信息实现了简单的信息 报文监控。

2. 功能介绍

本文实现文件自动同步的方法是基于两个软件 rsync 和 inotify-tools,要利用监 控服务(inotifywait 和 inotifywatch),监控同步数据服务器目录中信息的变化, 如发现目录中数据产生变化,就利用 rsync 服务推送到备份服务器上。 软件功能分工如下:

那么只是通过两个软件不同的功能是实现不了自动同步的,需要我们编写脚本来 进行功能结合。

3. 软件安装

由于这两种软件均比较常见,我司相关源中均有这两种软件,安装方式可以 通过 yum 安装或 apt 安装,或单独下载安装包安装即可,相关依赖较少,安 装是比较方便的,安装过程不再介绍。

4. 注意事项

inotify 软件需要 linux 内核 2.6.13 以后的内核版本才能支持。此程序是用 C 语言编写的,除了支持 inotify 的 Linux 内核之外没有其他依赖项。

利用 rsync 命令备份目录时,备份的目录后面有 / 和 没有 /,备份内容完 全不一样

二、软件部署

1. rsync 部署

传输方式

rsync 软件本身传输有多种传输方式,一般使用场景为增量备份使用,安 装软件后直接使用命令即可满足需求,远程传输命令类似于 scp。由于比较 简单,本文不做详细介绍,可通过互联网详细查询。

本次需要依赖的是其中的一种通过 socket(进程方式)传输文件和数据,也 就是通过创建守护进程,使用客户端和服务端的形式,不同于简单的类似 s cp 远程传输的推/拉方式传输。这就需要我们设立客户端和服务端,并配置 相关配置文件信息,才可以实现从客户端推送数据至服务端。

同步功能测试

主要是通过服务端开启守护进程,客户端 使用命令指定配置模块和安全文件来实现传输同步,这样既实现了免密的便捷 性,又保证了传输过程当中的安全性,我们看下相关传输过程以及原理如图:

监听方式

那么 inotify 本身有两大功能,一种是用来监控目录或文件动作,一种是用来统 计相关信息,那么实现实时同步功能采用的是这种监控动作的功能。两种功能对 比如下:

说明:在实时实时同步的时候,主要是利用 inotifywait 对目录进行监控

命令模板

由于 inotifywait 本身是命令行使用形式,所以我们主要来看一下 inotifywait 使用 的命令模板。

三、实现实时同步

条件验证

我们知道,两个软件各自不同的功能单独使用均不能实现实时同步的功能,需要 我们将两个软件使用脚本进行互相联系调用,达到实时同步的效果。

我们查看一下两个软件分别已验证可用的命令信息:

rsync 客户端服务命令确认可用,可实现增量同步功能

rsync -avz --delete /data/ rsync_backup@10.0.0.4::backup --password-file=/etc/rs

ync.password

rsync 服务端,确认服务已正常开启:

netstat -lntup |grep rsync

tcp 0 0 0.0.0.0:873 0.0.0.0:*

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/256139.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设备间的指令通信

指令通信的概念 要进行设备和设备之间的交流就需要通过串口发送数据进行交流 而串口发送简单的数据只需要传输介质 但是要发送复杂的数据就需要介质和传输的规则了 三种应用场景 比如在上位机和mcu之间 通过上位机管理控制器 从而控制电池 单片机和单片机之间 用户输入数据到…

Ubuntu安装nvidia GPU显卡驱动教程

Ubuntu安装nvidia显卡驱动 1.安装前安装必要的依赖 sudo apt-get install build-essential sudo apt-get install g sudo apt-get install make2.到官网下载对应驱动 https://www.nvidia.cn/Download/index.aspx?langcn 3.卸载原有驱动 sudo apt-get remove --purge nvidi…

【Linux】公网远程访问AMH服务器管理面板

目录 1. Linux 安装AMH 面板2. 本地访问AMH 面板3. Linux安装Cpolar4. 配置AMH面板公网地址5. 远程访问AMH面板6. 固定AMH面板公网地址 AMH 是一款基于 Linux 系统的服务器管理面板,它提供了一系列的功能,包括网站管理、FTP 管理、数据库管理、DNS 管理、…

双目光波导AR眼镜_AR智能眼镜主板PCB定制开发

AR眼镜方案的未来发展潜力非常巨大。随着技术的进步,AR眼镜的光学模块将变得更小巧,像素密度也会增加,实现更高分辨率的画面,甚至能够达到1080P、2K和4K级别的清晰度,从而提升用户的视觉体验。 AR智能眼镜的硬件方面&a…

2个月拿下信息系统项目管理师攻略(攻略超级全)

信息系统项目管理师(高项)一次性过啦!结合这次备考经验,给大家总结一下复习方法。 先上图,开心一下! 一、我为什么选择了高项 为什么我会选信息系统项目管理师,也就是我们常说的高项。 原因1…

Altium Designer实用系列(五)----整理并导出PCB的BOM表

一、引言 最近老师安排了一个小的任务,就是把我们项目的两个电路板BOM整合一下,要注明元器件的耐温、耐压、购买渠道等等内容。    一开始我觉得这工作内容太简单了,两分钟的事。但是当我实际开始干的时候,才发现,好…

C++ STL容器与常用库函数

STL是提高C编写效率的一个利器 STL容器&#xff1a; 一、#include <vector> 英文翻译&#xff1a;vector &#xff1a;向量 vector是变长数组(动态变化)&#xff0c;支持随机访问&#xff0c;不支持在任意位置O(1)插入。为了保证效率&#xff0c;元素的增删一般应该在末尾…

P30 C++智能指针

前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ &#x1f6f8;推荐专栏3: ​​​​​​《 链表_Chen…

全屏显示除了快捷键F11之外,还可以其他替代方法,毕竟F11不是万能的

本文介绍了如何在Windows11上实现全屏显示。根据上下文的不同&#xff0c;有些方法比其他方法更好。 使用Windows 11全屏键盘快捷方式 如果你计划经常使用全屏&#xff0c;只记住一个Windows键盘快捷键很可能会让你达到目的&#xff1a;F11。你会在键盘的最上面一排找到那个键…

SCADA软件工具有多少免费的?

随着工业自动化的飞速发展&#xff0c;SCADA系统已经成为工业领域智能化转型绕不开的重要工具&#xff0c;不少个人和公司也都加入到了学习研究SCADA系统的队伍中。数维图小编耗费大量时间整理了国内外免费&#xff08;非完全免费&#xff09;的SCADA软件工具&#xff0c;有部分…

局域网共享打印机设置,解决709、11B等一切共享问题

Win7、Win10、Win11添加共享打印机经常出现局域网共享打印机出错&#xff0c;常规的添加方式是SMB共享&#xff0c;一更新就出问题&#xff0c;报错0x00000709、0x0000011b等。 网上有许多方法&#xff0c;如卸载更新补丁&#xff0c;替换“win32spl.dll”文件&#xff0c;修改…