文件同步及实现简单监控

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:*

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS上配置和管理HTTP服务器的工具和实用程序

在CentOS系统上,有多个工具和实用程序可以帮助你配置和管理HTTP服务器。以下是一些常用的工具和实用程序: Apache HTTP服务器: Apache是CentOS上最常用的HTTP服务器之一。它是一个开源的Web服务器软件,具有高度的可配置性和可扩…

在jupyter notebook中修改其他文件的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

dell服务器安装PERCCLI

因在linux 系统中无法查看系统磁盘的raid级别,也无法得知raid状态,需要安装额外的包来监控,因是dell服务器,就在dell网站中下载并安装 1、下载链接:驱动程序和下载 | Dell 中国https://www.dell.com/support/home/zh-…

ELK(四)—els基本操作

目录 elasticsearch基本概念RESTful API创建非结构化索引(增)创建空索引(删)删除索引(改)插入数据(改)数据更新(查)搜索数据(id)&…

查看端口号是否被占用

windows10查看端口号是否被占用及解除占用的常用命令 netstat -ano:查看所有端口号占用情况 netstat -ano |findstr “XXX”:查看端口号为XXX的占用情况,如下: 得到进程号为12160的进程正在占用本地的9090端口号(如果只…

Python+requests+unittest+excel实现接口自动化测试框架

在刚刚进入测试行业的时候,最开始也是做功能测试,我想很多伙伴和我一样,觉得自动化测试都很高端,很神秘。迫不及待的想去学习作自动化测试。 以前比较常用数据库python做自动化,后面发现excel个人觉得更加适合&#x…

flex布局的flex为1到底是什么

参考博客:flex:1什么意思_公孙元二的博客-CSDN博客 flex:1即为flex-grow:1,经常用作自适应布局,将父容器的display:flex,侧边栏大小固定后,将内容区flex:1,内…

算术运算(这么简单?进来坐坐?)

先热热身 算术运算,也称为四则运算,包括加法、减法、乘法和除法。此外,算术运算还包括乘方和开方。 在算术中,加减被视为一级运算,乘除被视为二级运算,乘方和开方被视为三级运算。在一道算式中,…

GDPU 数据结构 天码行空13

文章目录 一、【实验目的】二、【实验内容】三、实验源代码四、实验结果五、实验总结 一、【实验目的】 (1) 理解插入排序算法的实现过程; (2)理解不同排序算法的时间复杂度及适用环境; (3)了解算法性能…

华为数通---配置Smart Link负载分担案例

定义 Smart Link,又叫做备份链路。一个Smart Link由两个接口组成,其中一个接口作为另一个的备份。Smart Link常用于双上行组网,提供可靠高效的备份和快速的切换机制。 目的 下游设备连接到上游设备,当使用单上行方式时&#x…

算能 MilkV Duo开发板实战——opencv-mobile (迷你版opencv库)的移植和应用

前言 OpenCV是一种开源的计算机视觉和机器学习软件库,旨在提供一组通用的计算机视觉工具。它用于图像处理、目标识别、人脸识别、机器学习等领域,广泛应用于计算机视觉任务。 OpenCV-Mobile是OpenCV库的轻量版本,专为移动平台(A…

服务器感染了.DevicData-D-XXXXXXXX勒索病毒,如何确保数据文件完整恢复?

引言: 勒索病毒成为网络安全的严峻挑战,而最新的.DevicData-D-XXXXXXXX勒索病毒更是引起广泛关注。本文将深入介绍.DevicData-D-XXXXXXXX勒索病毒的特征,提供恢复被其加密的数据文件的方法,并分享预防措施,以确保您的数…

单细胞seurat-细胞比例分析-画图详细教程

大家好,今天我们来画单细胞中最简单的细胞比例图~ 1.老规矩,先加载pbmc数据 dir.create("~/gzh/细胞比例") setwd("~/gzh/细胞比例")subset_datareadRDS("~/gzh/pbmc3k_final.rds") table(stringr::str_split(string c…

Bounding boxes augmentation for object detection

Different annotations formats Bounding boxes are rectangles that mark objects on an image. There are multiple formats of bounding boxes annotations. Each format uses its specific representation of bouning boxes coordinates 每种格式都使用其特定的边界框坐标…

TCP聊天

一、项目创建 二、代码 Client类 package tcp; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.util.Scanner; public class Client { public sta…

Elasticsearch- 环境-Windows集群部署和环境-Linux单节点部署和Linux集群部署-03

Elasticsearch环境 环境-简介 单机 & 集群 单台 Elasticsearch 服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集群中。除了…

STM32 cubeMX 呼吸灯实验

文章代码使用 HAL 库。 文章目录 一、1.PWM原理二、LED 原理图三、使用cubemx 配置 led四、PWM 相关函数五、PWM占空比占空比计算六、PWM 呼吸灯重要代码总结 呼吸灯 一、1.PWM原理 PWM全称为脉冲宽度调制(Pulse Width Modulation),是一种常…

软著项目推荐 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…

php循环遍历删除文件下文件和目录

前言 今天在写一个demo的时候需要循环删除目录下文件。如下想删temp下文件和目录。 具体实现 private function deleteDir($dirPath){if (is_dir($dirPath)) {$contents scandir($dirPath);// 如果是空目录if (count($contents) 2) {rmdir($dirPath);return;}// 不是空目录f…

windows MYSQL下载和自定路径安装,以及解决中文乱码问题。

文章讲的很详细,请耐心往下看。 一、mysql下载 下载网址:https://www.mysql.com/downloads/ 表示不登录,直接下载。 以上就把安装包下载完了。下载是8.0.35版本。 二、接下来看怎么安装 1.双击安装包,进行安装。 注意&#x…