小白带你学习Linux的rsync的基本操作(二十四)

目录

前言

一、概述

二、特性

1、快速

2、安全

三、应用场景

四、数据的同步方式

五、rsync传输模式

六、rsync应用

七、rsync命令

1、格式

2、选项

3、举例

4、配置文件

5、练习

八、rsync+inotfy实时同步

1、服务器端

2、开发客户端


前言

Rsync是一个开源的文件同步和备份工具。它可以通过局域网或互联网将文件从一个地方同步到另一个地方,保持两个位置的文件内容一致。Rsync在传输文件时仅传输文件的变化部分,而不是整个文件,这样可以大大加快文件传输的速度。

一、概述

    rsync是linux 下一个远程数据同步工具

    他可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync 算法减少数据的传输

    会对比两个文件的不同部分,传输差异部分,因此传输速度相当快

    rsync可拷贝、显示目录属性,以及拷贝文件,并选择性的压缩及递归拷贝

二、特性

1、快速

第一次传输全部,下一次传输差异

 rsync在传输过程中可以实行压缩和解压缩,使用更少的带宽

2、安全

 可以使用scp、ssh等方式传输

 直接通过socket连接

 支持匿名传输、方便进行网站镜像

三、应用场景

增量同步

备份迁移

四、数据的同步方式

数据备份:拉取(下载)

pull

数据恢复:推送(上传)

 push

五、rsync传输模式

本地传输

本地同步数据,类似于cp

远程传输

远程同步数据,类似于scp

守护进程

通过模块化的方式实现批量传输

六、rsync应用

安装

yum -y install rsync

如果已经安装,直接启动

第一步关防火墙和改宽容模式

systemctl stop firewalld && systemctl disable firewalld
setenforce 0

rpm -qi rsync

systemctl start rsyncd

监听端口号

 TCP/873

netstat -anptl | grep rsync

七、rsync命令

1、格式

rsync [选项] 原始位置 目标位置

作为远程命令

拉取                rsync [OPTION...] [USER@]HOST:SRC... [DEST]

rsync 1.txt 192.168.28.129:/mnt

推送                rsync [OPTION...] SRC... [USER@]HOST:DEST

作为rsync服务

拉取                rsync [OPTION...] [USER@]HOST::SRC... [DEST]

                       rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]

 推送             rsync [OPTION...] SRC... [USER@]HOST::DEST

                      rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

2、选项

-a           归档模式,递归并保留对象属性,等同于-rlptgoD

-v           -verbose           显示同步过程的详细信息

-z           在传输文件时进行压缩

3、举例

本地

rsync  -avz  abc/  /opt

远程

rsync -avz root@192.168.28.129:/opt

rsync -avz 1.txt  root@192.168.28.129:/opt

4、配置文件

/etc/rsyncd.conf

全局配置

address    独立运行时,用于指定服务器运行的 IP 地址,默认本地所有IP

port       指定 rsync 守护进程监听的端口号,默认 873

pid file     rsync 的守护进程将其 PID 写入指定的文件

log file     指定 rsync 守护进程的日志文件,而不将日志发送给 syslog

syslog facility   指定 rsync 发送日志消息给 syslog 时的消息级别

socket options  指定自定义 TCP 选项

lockfile   指定rsync的锁文件存放路径

timeout    超时时间

模块配置

path       指定当前模块的同步路径,该参数是必须指定的

comment   给模块指定一个描述

use chroot           在服务运行时要不要把他锁定在家目录,默认为 true

uid和gid            指定rsync运行用户和用户组,默认nobody

max connections      最大并发连接数,0为不限制

lock file             指定支持 max connections的锁文件。默认/var/run/rsyncd.lock

list                 指定列出模块列表时,该模块是否被列出。默认为 true

read only          只读选择,默认true

write only         只写选择,不让客户端从服务器上下载文件。默认false

ignore errors     忽略IO错误,默认true

ignore nonreadable 指定 rysnc 服务器完全忽略那些用户没有访问权限的文件。

dont compress      用来指定那些在传输之前不进行压缩处理的文件。

hosts allow  指定哪些主机客户允许连接该模块。默认值为 *

hosts deny  指定哪些主机客户不允许连接该模块

auth users   指定用于上传的用户名

secrets files    指定密码文件

守护进程传输

配置

uid=rsync

gid=rsync

fake super=yes     # 用于允许非root用户,在备份目录创建文件

list=false              # 默认true,允许查看本机有哪些模块

auth users=rsync_backup  # 用于指定认证用户

secrets file=/etc/rsync.passwd  # 指定认证用户密码

max connections=4                 # 允许最大连接数

read only=false                       # 默认yes,模块目录只读权限

ignore errors                          # 屏蔽错误报错

timeout=900                          # 指定rsync传输超时时间

[backup]

 path=/backup

vim /etc/rsyncd.conf

 创建用户        useradd rsync -s /sbin/nologin -M

useradd rsync -s /sbin/nologin -M rsync

创建认证用户的密码        echo 'rsync_backup:123456' >/etc/rsync.passwd

                                         chmod 600 /etc/rsync.passwd

 echo 'rsync_backup:123456' >/etc/rsync.passwd
   chmod 600 /etc/rsync.passwd

准备模块目录          mkdir /backup

                                 chown rsync.rsync /backup

mkdir /backup
  chown rsync.rsync /backup

重启服务          systemctl restart rsyncd

systemctl restart rsyncd

客户端远程传输            rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup

  rsync -avz /etc/hosts rsync_backup@192.168.28.128::backup

查看一下文件

回到客户端进入 

插入信息

 再上传一遍

 服务器查看

 这就是手动服务同步

通过密码文件实现免密传输

vim /etc/rsync.passwd             123456

vim /etc/rsync.passwd  

chmod   600 /etc/rsync.passwd

chmod   600 /etc/rsync.passwd

 rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup --password-file /etc/rsync.passwd

5、练习

1、使用认证用户为jx_名字缩写,认证密码为班级编号

/etc/rsyncd.conf

2、模块名称为juexing

重启服务 

3、客户端创建文件user.txt,内容为所有的用户信息

客户端先传过去看看

 服务器查看

4、自行修改文件内容,在服务器上实现同步

 删除剩四行

同样的命令在执行

 回到服务器

八、rsync+inotfy实时同步

1、服务器端

安装网站服务,启动,但是不写首页文件

安装httpd

mount  /dev/sr0 /mnt
yum -y install httpd

 

修改主配置文件

uid = root

gid = root

[wwwroot]

    path = /var/www/html

    comment = backup export area

    read only = false

    hosts allow = 192.168.1.0/24

vim /etc/rsyncd.conf

2、开发客户端

安装inotify工具

inotify-tools

tar xf  inotify-tools-3.14.tar.gz

./configure && make && make install

搭建网站服务器 

 查看端口号

 配置内核参数

vim /etc/sysctl.conf

fs.inotify.max_user_instances = 1024

fs.inotify.max_queued_events = 16384

fs.inotify.max_user_watches=1048576

sysctl -P

inotifywait -mrq -e modify,create,move,delete /var/www/html

 把客户端的wwwroot传回服务器

 回主机查看

 回客户端


 再传一遍

 回主机

编写脚本

#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete /var/www/html/ 192.168.28.128::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
$RSYNC_CMD
done

 客户机改文件

 回服务器查看一下

赋予执行权限 

chmod +x inotify_rsync.sh

写入文件开机自启文件

vim /etc/rc.local

/root/inotify_rsync.sh

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

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

相关文章

分布式应用之zookeeper集群+消息队列Kafka

一、zookeeper集群的相关知识 1.zookeeper的概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能…

【深入探究人工智能】:历史、应用、技术与未来

深入探究人工智能 前言人工智能的历史人工智能的应用人工智能的技术人工智能的未来当代的人工智能产物结语🍀小结🍀 🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 &am…

软件渗透测试真的很重要吗?渗透测试有哪些测试流程?

软件渗透测试是指通过模拟恶意攻击者的行为,评估软件系统中的潜在安全漏洞和弱点的活动。这种安全测试方法能够帮助开发人员和系统管理员发现并修复潜在的安全漏洞,以确保软件系统的安全性和完整性。软件渗透测试是一项高度技术性的任务,需要…

Docker 基本管理

Docker 基本管理 一:Docker 概述1.容器化越来越受欢迎,因为容器是:2.Docker与虚拟机的区别:3.Docker核心概念: 二:安装 Docker1.安装依赖包2.设置阿里云镜像源3.安装 Docker-CE并设置为开机自动启动4.查看 …

Storage、正则表达式

1 LocalStorage 2 SessionStorage 3 正则表达式的使用 4 正则表达式常见规则 5 正则练习-歌词解析 6 正则练习-日期格式化 Storage-Storage的基本操作 // storage基本使用// 1.token的操作let token localStorage.getItem("token")if (!token) {console.log(&q…

SpringBoot读取配置的6种方式

1. 概述 通过了解springboot加载配置,可以更方便地封装自定义Starter。 在SpringBoot中,可以使用以下6种方式读取 yml、properties配置: 使用Value注解:读取springboot全局配置文件单个配置。使用Environment接口:通过…

J-Flash烧录工具如何添加新的芯片类型

0 Preface/Foreword 1 添加方法 1.1 修改JLinkDevices.xm <!-- --> <!-- CMS --> <!-- --> <Device> <ChipInfo Vendor"CMS32" Name"CMS32L051" Core"JLINK_CORE_CORTEX_…

每天一点Python——day58

#第五十八天 集合间的关系&#xff1a; 类似于数学中学到的集合一样&#xff0c;关系差不多&#xff0c;譬如相等&#xff0c;子集&#xff0c;交集 如图所示&#xff1a;#①两个集合是否相等&#xff1a;运用运算符【等号】或者运算符&#xff01;【不等号】进行判断 #例&…

企业电子招标采购系统源码Spring Cloud + Spring Boot + MybatisPlus + 前后端分离 + 二次开发

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及审…

3Ds max入门教程:快捷键命令和鼠标热键大全

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 起初&#xff0c;您可能需要花一些时间查找热键&#xff0c;但是一旦您使用它们记住了它们&#xff0c;它们将使您以至少两倍的速度产生结果。例如&#xff0c;当您进行建模&#xff08;移动、缩放、旋转等…

allure环境搭建

allure环境搭建 在搭建之前你应该有python、pycharm allure介绍 官网&#xff1a;https://docs.qameta.io/allure/ 英文介绍 Allure Framework is a flexible lightweight multi-language test report tool that not only shows a very concise representation of what have…

青岛大学_王卓老师【数据结构与算法】Week05_13_队列的顺序表示和实现1_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

Mysql教程(一):Mysql数据模型和SQL语法分析

Mysql教程&#xff08;一&#xff09;&#xff1a;Mysql数据模型和SQL语法分析 1、Mysql数据模型 1.1 关系型数据库&#xff08;RDBMS&#xff09; 概念&#xff1a;建立在关系模型基础上&#xff0c;由多张相互连接的二维表组成的数据库。 特点&#xff1a; 使用表存储数…

XR应用云流化,多方面提升 XR 扩展现实体验!

无论是使用户能够协作设计电动赛车&#xff0c;还是帮助观众通过数字世界与自然互动&#xff0c;越来越多的企业利用XR扩展现实为用户提供沉浸式逼真的虚拟环境。 下一代沉浸式技术的应用越来越广泛&#xff0c;图形和人工智能的最新突破正在扩展XR的功能。这四种技术正在XR生态…

蓝桥杯真题:密码脱落(区间dp)

目录 题目&#xff1a; 解题思路&#xff1a; dp分析&#xff1a; 解题代码&#xff1a; 题目&#xff1a; 解题思路&#xff1a; 题目要求的为脱落的种子数&#xff08;即回文字符中没有对应回文的字符的数量&#xff09; 我们可以转换成求回文字符串最长回文字符串的长…

02.MySQL——CURD

文章目录 表的增删改查Create单行数据全列插入多行数据指定列插入插入否则更新替换——REPLACE RetrieveSELECT 列WHERE 条件结果排序筛选分页结果 UpdateDelete删除数据截断表 插入查询结果聚合函数group bywhere和having SQL查询中关键字优先级函数日期函数字符串函数数学函数…

SpringBoot 统一功能的处理

SpringBoot 统一功能的处理 文章目录 SpringBoot 统一功能的处理1. 用户登录权限校验1.1 最初用户登录验证1.2 Spring AOP 统一用户登录验证的问题1.3 SpringAOP 拦截器1.3.1 实现自定义拦截器1.3.2 将自定义拦截器加入到系统配置 1.4 拦截器实现原理1.4.1 实现流程图1.4.2 实现…

快速批量改名文件!随机字母命名,让文件名更有创意!

想要让文件名更加有创意和个性化吗&#xff1f;不妨尝试使用随机字母来批量改名文件&#xff01;无论是照片、文档还是其他文件&#xff0c;只需要简单的几个步骤&#xff0c;您就可以为它们赋予一个独特的随机字母命名。这不仅可以帮助您整理文件&#xff0c;还能增加一些乐趣…

微信原生实现一个简易的图片上传功能

一、实现原理 wx.showActionSheet()&#xff1a;显示操作菜单&#xff0c;选择是从相册选择还是相机拍摄照片wx.chooseImage()&#xff1a;从本地相册选择图片或使用相机拍照。wx.uploadFile()&#xff1a;将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求&#xff0c…