rsync远程同步+inotify监控

目录

一、Rsync 简介

1、rsync是什么

2、备份的方式

3、rsync同步方式

4、常用rsync命令

5、配置源的两种表达方法

二、rsync实验

1、本地复制

​编辑​编辑

2、异地复制

2.1  rsync服务器配置

2.2 rsync客户端配置

2.2.1 普通同步

2.2.2 免密同步

2.2.3 --delete选项的用法

3、发起端(客户端)配置 rsync+inotify

3.1 服务端配置

3.2 发起端配置

3.3 客户端验证

一、Rsync 简介

1、rsync是什么

  • 一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份
  • 传输前执行压缩,因此非常适用于异地备份、镜像服务器等
  • 负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置发起端应对该位置具有读取权限
  • 官方网站:https://rsync.samba.org/

2、备份的方式

1、发起端:负责rsync  同步操作的客户机叫做发起端,通知服务器我要备份你的数据
2、备份源:负责响应来自客户机rsync   同步操作的服务器叫做备份源,需要备份的服务器
3、服务端:运行rsyncd服务,一般来说,需要备份的服务器
4、客户端:存放备份数据

rsync复制时的原理

  • 首先将源文件和目标位置的文件对比,找出差异部分
  • 根据目标位置的文件与源文件差异的部分,进行一致性同步

3、rsync同步方式

本地复制:首先是将源文件和目的位置文件对比找出差异,然后将源文件与目的位置的差异部分进行一致性同步。

下行同步:客户端与服务端同步内容,可以理解为客户端从服务器上下载内容

上行同步:服务端与客户端同步内容,可以理解为客户端将内容上传到服务器

4、常用rsync命令

基本格式:rsync [选项] 原始位置 目标位置

常用选项:

  • -v:显示同步过程的详细(verbose)信息。
  • -z:在传输文件时进行压缩(compress)。
  • -a:归档模式,保留文件的权限、属性等信息,等同于组合选项“-rlptgoD”。
  • --delete:删除目标位置有而原始位置没有的文件。
  • -r:递归模式,包含目录及子目录中的所有文件。
  • -l:对于符号链接文件仍然复制为符号链接文件。
  • -p:保留文件的权限标记。
  • -t:保留文件的时间标记。
  • -g:保留文件的属组标记(仅超级用户使用)。
  • -o:保留文件的属主标记(仅超级用户使用)。
  • -H:保留硬连接文件。
  • -A:保留 ACL 属性信息。
  • -D:保留设备文件及其他特殊文件。
  • --checksum:根据校验和(而不是文件大小、修改时间)来决定是否跳过文件。

5、配置源的两种表达方法

#格式一:
#用户名@主机地址::共享模块名
rsync -avz backuper@192.168.247.10::wwwroot /opt/#格式二:
#rsync://用户名@主机地址/共享模块名
rsync -avz rsync://backuper@192.168.247.10/wwwroot /opt/

二、rsync实验

1、本地复制

rsync -avz /abc /opt 
#复制整个abc目录rsync -avz /abc/ /opt 
#复制abc目录下的文件

2、异地复制

2.1  rsync服务器配置

 实验环境: 

192.168.247.20   服务端   
192.168.247.80   客户端   

#前提首先关闭防火墙和增强功能
systemctl stop firewalld
setenforce 0rpm -q rsync							#一般系统已默认安装rsync#建立/etc/rsyncd.conf 配置文件
vim /etc/rsyncd.conf				#添加以下配置项
uid = root
gid = root
use chroot = yes										#禁锢在源目录
address = 192.168.10.18								    #监听地址
port 873												#监听端口 tcp/udp 873,可通过cat /etc/services | grep rsync查看
log file = /var/log/rsyncd.log							#日志文件位置
pid file = /var/run/rsyncd.pid							#存放进程 ID 的文件位置
hosts allow = 192.168.10.0/24							#允许访问的客户机地址
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z		#同步时不再压缩的文件类型[wwwroot]												#共享模块名称
path = /var/www/html									#源目录的实际路径
comment = Document Root of www.kgc.com
read only = yes											#是否为只读
auth users = backuper									#授权账户,多个账号以空格分隔
secrets file = /etc/rsyncd_users.db						#存放账户信息的数据文件#如采用匿名的方式,只要将其中的“auth users”和“secrets file”配置项去掉即可。
#为备份账户创建数据文件
vim /etc/rsyncd_users.db
backuper:123456				#无须建立同名系统用户chmod 600 /etc/rsyncd_users.db#启动 rsync 服务程序
rsync --daemon				#启动 rsync 服务,以独立监听服务的方式(守护进程)运行 

创建共享文件,也就是源文件

mkdir -p /var/www/html
chmod +r /var/www/html
cd /var/www/html
echo "yudeqiang">ydq.txt
echo "zhouxingchi">zxc.txt

2.2 rsync客户端配置

2.2.1 普通同步

2.2.2 免密同步

vim /etc/server.pass
123chmod 600 /etc/server.pass
rsync -avz --password-file=/etc/server.pass ydq@20.0.0.55::wwwroot /abc

2.2.3 --delete选项的用法

rsync -avz -delete --password-file=/etc/server.pass backuper@192.168.247.20::wwwroot /abc

3、发起端(客户端)配置 rsync+inotify

将inotify机制与rsync工具相结合,可以实现触发式备份(实时同步),即只要原始位置的文档发生变化,则立即启动增量备份操作;否则处于静默等待状态。这样,就避免了按固定周期备份时存在的延迟性、周期过密等问题。
因为 inotify 通知机制由 Linux 内核提供,因此主要做本机监控,在触发式备份中应用时更适合上行同步。

3.1 服务端配置

1、修改rsync源服务器配置文件

vim /etc/rsyncd.conf
......
read only = no											#关闭只读,上行同步需要可以写kill $(cat /var/run/rsyncd.pid)
rsync --daemon	
netstat -anpt | grep rsyncchmod 777 /var/www/html/

2、调整 inotify 内核参数

#max_queue_events(监控事件队列,默认值为16384)、
#max_user_instances(最多监控实例数,默认值为128)、
#max_user_watches(每个实例最多监控文件数,默认值为8192)。当要监控的目录、文件数量较多或者变化较频繁时,建议加大这三个参数的值。#cat /proc/sys/fs/inotify/max_queued_events
#cat /proc/sys/fs/inotify/max_user_instances
#cat /proc/sys/fs/inotify/max_user_watchesvim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576sysctl -p

3.2 发起端配置

安装inotif安装包

编写触发同步脚本

脚本的目的就是时实监控、时实同步的功能

vim /opt/inotify.sh#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /abc"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /abc/ backuper@192.168.247.20::wwwroot"$INOTIFY_CMD | while read DIRECTORY EVENT FILE
doif [ $(pgrep rsync | wc -l) -le 0 ] ; then$RSYNC_CMDfi
done#脚本解释
先定义一个变量为监控这个目录中是否创建、删除、移动、修改、属性等信息的变化
再定义一个变量为rsync同步,将/abc中的目录中的信息同步到rsync服务器中的指定目录
再编写一个while循环,先执行监控变量,再执行while循环,
循环内容为,读取目录事件文件,如果rsync进程同步操作不存在,则执行同步操作的变量。

3.3 客户端验证

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

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

相关文章

EmguCV-C#版本Opencv图像识别和处理

目录 0、简介 1、图像处理 (1)颜色处理 (2)图像差 (3)图像拼接 (4)直方图 (5)颜色空间/通道提取 2、预处理 (1)均衡化 &…

idea2021.1.3版本双击启动,没反应

今天打开电脑,点开idea,界面悬在这里,几秒然后就是没了。然后就一直打不开idea了。 然后又是卸载重装,又是删除缓存文件。我把电脑关于idea的文件全都删除了 。重新安装后(首次运行倒是可以打开,但是关掉id…

Python爬虫-IP隐藏技术与代理爬取

前言 在进行爬虫程序开发和运行时,常常会遇到目标网站的反爬虫机制,最常见的就是IP封禁,这时需要使用IP隐藏技术和代理爬取。 一、IP隐藏技术 IP隐藏技术,即伪装IP地址,使得爬虫请求的IP地址不被目标网站识别为爬虫。…

spring boot 使用AOP+自定义注解+反射实现操作日志记录修改前数据和修改后对比数据,并保存至日志表

一、添加aop starter依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>二&#xff1a;自定义字段翻译注解。&#xff08;修改功能时&#xff0c;需要显示如…

【mysql】—— 函数的基本介绍

前言&#xff1a; MySQL是一种常用的关系型数据库管理系统&#xff0c;它提供了许多内置的函数来进行数据操作和处理。本期&#xff0c;我将给大家介绍的就是关于 “函数” 的相关知识&#xff01;&#xff01;&#xff01; 目录 &#xff08;一&#xff09;日期函数 &#…

Linux基础命令(示例代码 + 解释)

查看目录下文件 ls [-a -l -h] [路径] -a&#xff08;全部&#xff09; -l&#xff08;细节&#xff09; -h&#xff08;大小&#xff09; ls ls / ls -a ls -l ls -h ls -alh ls -l -h -a ls -lah /切换目录 cd [路径] change di…

webrtc-m79-测试peerconnectionserver的webclient-p2p-demo

1 背景 webrtc的代码中有peerconnectionclient和peerconnectionserver的例子&#xff0c;但是没有对应的web端的例子&#xff0c;这里简单的写了一个测试例子&#xff0c;具体如下&#xff1a; 2 具体操作 2.1 操作流程 2.2 测试效果 使用webclient与peerconnectionclient的…

算法 数据结构 双向环形链表 手撸环形链表 环形链表实现容器 环形链表添加修改删除获取大小 环形链表实现自定义容器 手撸容器 双向环形哨兵链表 数据结构(六)

1. 环形链表&#xff1a; 2. 建议先不要看我写得自己先实现下&#xff0c;只将Node内部类复制自己命名得容器内&#xff0c; 实现方法&#xff1a; a. add方法&#xff08;添加到头部&#xff0c;尾部添加&#xff0c;指定位置添加&#xff09; b. get方法&#xff08;获取首部…

HBASE知识点

HBASE是什么&#xff1f; 高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库。利用HDFS作为其文件存储系统&#xff0c;利用MapReduce来处理HBase中的海量数据。利用Zookeeper作为其分布式协同服务。用于存储非结构化和半结构化的松散数据。 HBase数据模型 RowKey: 唯…

Java“牵手”拼多多商品详情数据,拼多多商品详情接口,拼多多API接口申请指南

拼多多商品详情API接口的作用是获取拼多多平台上某个商品的详细信息&#xff0c;包括商品标题、价格、图片、规格、参数、店铺信息等。 开发者可以通过该接口获取到商品的原始数据&#xff0c;方便进行数据分析、价格比较、爬取等操作。通过该接口获取到的商品详情数据可以结合…

flink命令行提交jar包任务

1. 环境准备 1.1 flink环境准备 关于如何安装flink&#xff0c;这个写的非常详细&#xff0c;https://blog.csdn.net/qq_43699958/article/details/132826440 在flink的bin目录启动flink cluster [rootlocalhost bin]# ./start-cluster.sh1.2 Linux环境准备 1.2.1 关闭linu…

43.MQ—RabbitMQ

目录 一、MQ—RabbitMQ。 &#xff08;1&#xff09;同步调用与异步调用。 &#xff08;1.1&#xff09;同步调用。 &#xff08;1.2&#xff09;异步调用。 &#xff08;2&#xff09;MQ之间的区别。 &#xff08;3&#xff09;RabbitMQ学习。 &#xff08;3.1&#xf…

一文读懂:苹果手机怎么录屏?

“刚买的苹果14&#xff0c;最近需要用来录屏&#xff0c;找了很久都没找到&#xff0c;朋友说苹果手机没有录屏功能&#xff0c;可是我半信半疑&#xff0c;花了这么多钱买的&#xff0c;怎么可能没有录屏功能呢&#xff0c;有人知道苹果手机怎么录屏吗&#xff1f;” 苹果手…

骨传导耳机对大脑有影响吗?骨传导耳机到底好不好

先上结论&#xff0c;骨传导耳机对大脑没有影响。骨传导耳机使用的是骨传导技术&#xff0c;声音是通过头骨骨头和颌骨给内耳传递的&#xff0c;而不是通过传统的空气传播&#xff0c;它将声音传输到颅骨&#xff0c;然后透过骨头振动直接刺激内耳&#xff0c;绕过外耳和中耳。…

C#,《小白学程序》第十五课:随机数(Random)第二,统计学初步,数据统计的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十五课&#xff1a;随机数&#xff08;Random&#xff09;第二&#xff0c;统计学初步&#xff0c;数据统计的计算方法与代码 /// 用随机数做简单的统计并用图形显示统计结果。 /// </summary> /// <param name&q…

数电课程设计——课设一:加减计数器

为了帮助大家更好学习FPGA硬件语言&#xff0c;创立此资源 包含文件有&#xff1a;实验报告、仿真文件&#xff0c;资料很全&#xff0c;有问题可以私信 一、实验内容 1、利用QuartusII和Modelsim实现100进制可逆计数器编码显示实验。 二、实验步骤 &#xff08;1&#xff…

CentOS 7 openssl 3.0.10 rpm包制作 —— 筑梦之路

源码下载地址&#xff1a; https://www.openssl.org/source/openssl-3.0.10.tar.gz 编写spec文件&#xff1a; cat << EOF > openssl.specSummary: OpenSSL 3.0.10 for CentosName: opensslVersion: %{?version}%{!?version:3.0.10}Release: 1%{?dist}Obsoletes…

企业可以自己建立大数据平台吗?有哪些好处?

随着企业的快速发展&#xff0c;企业累积了越来越多的数据&#xff0c;但管理巨量的大数据是一件非常难的事情&#xff0c;且很多数据没有充分发挥作用。因此不少企业在问&#xff0c;企业可以自己建立大数据平台吗&#xff1f;有哪些好处&#xff1f; 企业可以自己建立大数据…

vue 验证码 图片点击

实现登陆验证 图片依次点击功能 demo &#xff0c;上图可以根据demo修改&#xff0c;直接拿用 <template><div><div class"big-box" id"BigBox" :style"background-image:url( imgCodeUrl )"><div class"click-box…

最新IDE流行度最新排名(每月更新)

2023年09月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多&#xff0c;这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&#xff0c;Top IDE索引可以帮助您决定在软件开发项目中使用哪个IDE …