Rsync(二十七)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、概述

二、特性

三、应用场景

四、数据的同步方式

五、rsync传输模式

六、rsync应用

七、rsync 命令

1. 格式

 1.1 作为远程命令

 1. 2 作为rsync服务

2. 选项

3. 配置文件

 3.1  全局配置

           3.2   模块配置

4. 守护进程传输

4.1 配置

4.2 创建用户

4.3 创建认证用户的密码

4.4 准备模块目录

4.5 重启服务

4.6 客户端远程传输

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

八、 rsync+inotfy实时同步

1. 服务器端

2.开发客户端

2.1 安装inotify工具

2.2  配置内核参数

2.3 命令

2.4 编写脚本

2.5 赋予执行权限

2.6  写入文件

总结



前言

今天学习的是rsync ,也是不用安装,直接用的服务,内容比较简单,我们一起来看看今天的内容吧!


提示:以下是本篇文章正文内容,下面案例可供参考

一、概述

    rsync是linux 下一个远程数据同步工具
    他可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync 算法减少数据的传输
    会对比两个文件的不同部分,传输差异部分,因此传输速度相当快
    rsync可拷贝、显示目录属性,以及拷贝文件,并选择性的压缩及递归拷贝

二、特性

快速
        第一次传输全部,下一次传输差异
        rsync在传输过程中可以实行压缩和解压缩,使用更少的带宽
安全
        可以使用scp、ssh等方式传输
        直接通过socket连接
        支持匿名传输、方便进行网站镜像

三、应用场景

    增量同步
    备份迁移

四、数据的同步方式

    数据备份:拉取(下载)
        pull
    数据恢复:推送(上传)
        push

五、rsync传输模式

    本地传输
        本地同步数据,类似于cp
    远程传输
        远程同步数据,类似于scp
    守护进程
        通过模块化的方式实现批量传输

六、rsync应用

 安装
        yum -y install rsync
            如果已经安装,直接启动

启动
        systemctl start rsyncd
监听端口号
        TCP/873

七、rsync 命令

1. 格式

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

 1.1 作为远程命令

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


 1. 2 作为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
        在传输文件时进行压缩

举例
    本地
        rsync  -avz  abc/  /opt
        rsync  -avz  /abc  /opt
    远程
        rsync -avz root@192.168.2.7:/etc/hostname  /root/
        rsync -avz  /root/hostname root@192.168.2.7:/etc/hostname 

3. 配置文件

/etc/rsyncd.conf


 3.1  全局配置

address 独立运行时,用于指定服务器运行的 IP 地址,默认本地所有IP
port指定 rsync 守护进程监听的端口号,默认 873
 pid filersync 的守护进程将其 PID 写入指定的文件
log file  指定 rsync 守护进程的日志文件,而不将日志发送给 syslog
syslog facility指定 rsync 发送日志消息给 syslog 时的消息级别
socket options指定自定义 TCP 选项
 lockfile指定rsync的锁文件存放路径
 timeout 超时时间

        
  3.2   模块配置

 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指定密码文件

4. 守护进程传输

4.1 配置

    uid=rsync
    gid=rsync
    fake super=yes     # 用于允许非root用户,在备份目录创建文件
    list=false              # 默认true,允许查看本机有哪些模块
    auth users=rsync_backup  # 用于指定认证用户
    secrets file=/etc/rsync.passwd  # 指定认证用户密码
    read only = false
    max connections=4                 # 允许最大连接数
    read only=false                       # 默认yes,模块目录只读权限
    ignore errors                          # 屏蔽错误报错
    timeout=900                          # 指定rsync传输超时时间
    [backup]
    path=/backup

 

 4.2 创建用户

   useradd rsync -s /sbin/nologin -M          
     

 4.3 创建认证用户的密码


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

  4.4 准备模块目录

    mkdir /backup
    chown rsync.rsync /backup   

4.5 重启服务

systemctl restart rsyncd

4.6 客户端远程传输

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

服务端查看

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

   vim /etc/rsync.passwd
        123456
    chmod   600 /etc/rsync.passwd
    rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup --password-file /etc/rsync.passwd

 练习
    1、使用认证用户为jx_名字缩写,认证密码为班级编号
    2、模块名称为juexing
    3、客户端创建文件user.txt,内容为所有的用户信息
    4、自行修改文件内容,在服务器上实现同步

服务端 

客户端

 服务端查看

八、 rsync+inotfy实时同步

1. 服务器端

  安装网站服务,启动,但是不写首页文件
    修改主配置文件
        uid = root
        gid = root
        [wwwroot]
    path = /var/www/html
    comment = backup export area
    read only = false
    hosts allow = 192.168.1.0/24

 

2.开发客户端

2.1 安装inotify工具

        inotify-tools
        tar xf  inotify-tools-3.14.tar.gz
        ./configure && make && make install

2.2  配置内核参数

vim /etc/sysctl.conf
        fs.inotify.max_user_instances = 1024
        fs.inotify.max_queued_events = 16384
        fs.inotify.max_user_watches=1048576
        sysctl -P

2.3 命令

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

客户端上传

 服务端查看


  2.4 编写脚本 

 vim /opt/inotify_rsync.sh
        #!/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.115.130::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
$RSYNC_CMD 
done

服务端

2.5 赋予执行权限

 chmod +x inotify_rsync.sh

2.6  写入文件

   vim /etc/rc.local
            /root/inotify_rsync.sh

客户端 

 服务端


总结

以上就是今天要讲的内容,本文仅仅简单介绍了rsync 的概念、用途及使用方法,需要我们动手操作起来,所以,要好好联系哦!

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

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

相关文章

信息摘要 秘钥签名 数字签名 数字证书 数字验证 数字信封 这都是什么东西?

信息摘要 秘钥签名 数字签名 数字证书 数字验证 数字信封 这都是什么东西? 一下遇见这么多相近的名词,实在是难以区分理解,还是从这些概念产生的缘由理解吧 先看需求:如何保证 数据 在网络中传输时正确的?有没有被篡…

windows mysql 自动启动bat脚本

上一篇:windows mysql服务自动启动 错误模块名称:ntdll.dll_csdn_aspnet的博客-CSDN博客 根据上一篇文章进行手动启动mysql服务补充,由于演示机器系统安装的为win11家庭版,为了安全起见,在项目演示期间,避免数据库使用…

GO语言GMP模型

目录 程序入口 协程主动让出: 被动让出: schedule 监控线程 程序入口 在执行一系列检查和初始化(创建多少个P,与M0关联)后,进入runtime.main,创建main goroutine,执行mian.mian。 一开始GO语言的调度只有M和G。每个M…

小程序api的promise化

小程序根目录cmd运行安装命令 npm install --save miniprogram-api-promise1.0.4 安装完成之后先到根目录中删除miniprogram_npm文件夹(不删除构建npm时可能会出现问题) 删除之后再在工具中点击构建npm 构建成功之后会看到根目录中重新出现了miniprogram_npm文件夹 在app.j…

nodejs 下载地址 阿里云开源镜像站

nodejs 下载地址 阿里云开源镜像站 https://mirrors.aliyun.com/nodejs-release/ 我们下期见,拜拜!

实现 Rollup 插件alias 并使用vitest提高开发效率

本篇文章是对 实现 Rollup 插件 alias | 使用 TypeScript 实现库的基本流程 | 使用单元测试提高开发效率 的总结。其中涉及到开发一个组件库的诸多知识点。 实现一个经常用的 rollup 插件 alias 首先执行npm init命令初始化一个package.json文件,因为插件使用了ty…

微服务: 05-rabbitmq设置重试次数并设置死信队列

目录 1. 上文传送门: 2. 前言简介: 2.1 问: 消费端重复循环异常如何解决? 2.2 为什么要使用死信队列 2.3 案例思路 -> ps: 以下案例经过测试(思路一/二实现原理一样) -> 2.3.1 思路一 -> 2.3.2 思路二 3. 案例代码 3.1 简单介绍案例 3.2 声明交换机 队…

Redis实战案例19-Redis解决主从一致性问题

主节点(Master)“写操作”: 接收并响应客户端的读写请求。持久化数据到磁盘(根据配置可以选择使用RDB快照或者AOF日志)。将自己的写操作同步给所有的从节点。处理发布/订阅(Pub/Sub)模式中的发…

ARM 架构是什么?

ARM(Advanced RISC Machines)架构是一种处理器架构,它是一种精简指令集计算机(RISC)架构。ARM架构最初由ARM Holdings(现在是SoftBank Group的子公司)开发,并在1980年代末和1990年代…

安卓APK反编译+修改+重打包+签名

目录 1.下载反编译工具包。2.将APK包,重命名为ZIP,解压。放到反编译根目录下。3.使用apktool反编译修改smail文件,进行重打包4.重新打包5.重签名 1.下载反编译工具包。 反编译工具包地址:百度网盘 提取码:dsu3 解压后…

AtcoderABC243场

A - Shampoo A - Shampoo ] 题目大意 高桥家有三个人:高桥、他的父亲和他的母亲。每个人每晚都在浴室洗头发。他们按照顺序使用AA、BB和CC毫升的洗发水。 问,今天早上瓶子里有VV毫升的洗发水。在不重新装满的情况下,谁会第一个用完洗发水洗头…

网工内推 | 美图秀秀招网工,大专以上,15薪,NP认证优先

01 美图公司 招聘岗位:网络工程师 职责描述: 1、美图大厦网络、分公司网络、IT相关项目的网络、办公内网服务器; 2、负责网络的设计、运行、管理和维护等工作; 3、负责远程办公环境的优化、运行、管理和维护工作; 4、…

为什么低代码只能掀起小浪花?了解低代码的得失与前景

导语:低代码是相对于高代码和无代码的一个中间概念,通常强调的是用户不需要学习如何写代码,就能完成工作。然而低代码模式一直不温不火,原因是什么呢?一起来看一下吧。 最近互联网大公司裁员消息又起,“低代…

Linux: cannot read file data

报错: Could not load library libcudnn_cnn_infer.so.8. Error: /home/qc/miniconda3/envs/DNAqc/lib/python3.10/site-packages/torch/lib/libcudnn_cnn_infer.so.8: cannot read file data Please make sure libcudnn_cnn_infer.so.8 is in your library path! A…

【NLP】国外新动态--LLM模型

一、说明 NLP走势如何?这是关于在实践中使用大型语言模型(LLM)的系列文章中的一篇文章。在这里,我将介绍LLM,并介绍使用它们的3个级别。未来的文章将探讨LLM的实际方面,例如如何使用OpenAI的公共API,Hugging Face Transformers Python库,如何微调LLM,以及如何从头开始…

navicate_windows_14

1.新建文本文档2.输入如下内容 echo off set dnInfo set dn2ShellFolder set rpHKEY_CURRENT_USER\Software\Classes\CLSID :: reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration14XCS /f %针对<strong><font color"#FF0000"…

华为产品测评官-开发者之声 - ModelArts 真实体验感想

华为产品测评官&#xff0d;开发者之声 - ModelArts 真实体验感想 我先是在6月17日参加了华为在深圳举办的开发者大会&#xff0c;后面看到群里发的"2023华为产品测评官&#xff0d;开发者之声"活动&#xff0c;简单看了一下体验活动的具体事情&#xff0c;感觉好玩…

【005】基于深度学习的图像语 通信系统

摘要 语义通信是一种新颖的通信方式&#xff0c;可通过传输数据的语义信息提高带宽效率。提出一种用于无线图像传输的系统。该系统基于深度学习技术开发并以端到端&#xff08;E2E&#xff09;的方式进行训练。利用深度学习实现语义特征的提取和重建&#xff0c;在发送端提取信…

异步fifo(1)

什么时异步fifo FIFO&#xff0c;即First In First Out &#xff0c;是一种先进先出的数据缓存器&#xff0c;异步FIFO 是指读写时钟不一致&#xff0c;读写时钟是互相独立的。数据从一个时钟域写入FIFO缓冲区&#xff0c;并从另一个时钟域的同一FIFO缓冲区中读取数据&#xf…

CSS 伪元素: ::marker 自定义列表序号

::marker 伪元素 ::marker&#xff0c;可作用在任何设置了 display: list-item 的元素或伪元素上&#xff0c;例如<li>和<summary>。 /** <ul><li>Peaches</li><li>Apples</li><li>Plums</li> </ul> */ ul li::…