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 的概念、用途及使用方法,需要我们动手操作起来,所以,要好好联系哦!

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

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

相关文章

解密:GPT-4框架与训练过程,数据集组成,并行性的策略,专家权衡,推理权衡等细节内容

大家好,我是微学AI,今天给大家解密一下GPT-4框架与训练过程,数据集组成,并行性的策略,专家权衡,推理权衡等细节内容。2023年3月14日,OpenAI发布GPT-4,然而GPT-4的框架没有公开&#…

【ArcGIS Pro二次开发】(46):要素类从上到下、从左到右排序

要素类经过编辑之后,【OBJECTID】字段会变得不规律。应部分网友要求,做了这个从上到下、从左到右排序的工具。 不过后来在ArcGIS Pro中发现了一个【排序】工具,已经可以完美实现这个功能需求,发现自己做了个白工。 不过做了不能白…

【最新教程】树莓派安装系统及VNC远程桌面连接

大家好,今天就不给大家介绍PYTHONL ,今天我作为一个刚入坑树莓派的小白,整理了一下自己安装树莓派的整个过程,分享给大家。 目录 树莓派 准备工作: 树莓派远程ssh失败access denied 原因: 树莓派系统安装 1、下载…

hive常用方法

日期类 Date_sub 日期进行加减 ,正的减,负的加 select current_date -- 当前日期,date_sub(current_date,1) -- 前一日,date_sub(current_date,-1) -- 后一日 from edw.test;字符类 split 该函数是分割字符串 ,按照…

ChatGPT火热之下的冷思考

作为一款基于人工智能的自然语言处理(NLP)​​聊天机器人​​程序,ChatGPT通过大量来自互联网的文本进行训练,并使用深度学习和机器学习算法来理解用户的问题并提供准确的回答。并且,ChatGPT还内置了情感分析、关键字提取和实体识别等功能&am…

【QT】——QListWidget的使用

目录 1.QListWidget和QListWidgetItem 2.外观 2.1列表模式 2.2图标模式 3.常用接口 4.示例 删除列表项 添加列表项 1.QListWidget和QListWidgetItem QListWidget 是qt中的列表框控件,它用于显示多个列表项,列表项对应的类是QListWidgetItem. Q…

qt和vue交互

1、首先在vue项目中引入qwebchannel /******************************************************************************** Copyright (C) 2016 The Qt Company Ltd.** Copyright (C) 2016 Klarlvdalens Datakonsult AB, a KDAB Group company, infokdab.com, author Milian …

MobPush Android For Unity

本文档以unity2020.3.41演示 集成准备 注册账号 使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查看注册流程 下载.unitypackage包 打开 Github 下载 MobPush-For-Unity 项目&am…

java项目之贝儿米幼儿教育管理系统(ssm+mysql+jsp)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的贝儿米幼儿教育管理系统。技术交流和部署相关看文章末尾! 开发环境: 后端: 开发语言:Java…

队列的表示和操作

队列:队列是仅在表尾进行插入操作,在表头进行删除操作的线性表。 表尾即an端,称为队尾,表头即a1端,称为队头。 队列的存储方式:顺序队列和链式队列 队列顺序表示 #define MAXQSIZE 100 //最大队列长度 …

使用php数组实现双色球的随机选号

一、双色球彩票介绍 双色球是中国福利彩票的一种常见玩法,也是全国彩民最爱的彩种之一。玩法规则是在33个红色球中选择6个数字,在16个蓝色球中选择1个数字,红色球号码区间为1-33,蓝色球号码区间为1-16。可以单式投注或者复式投注…

Python对Excel不同的行分别复制不同的次数

本文介绍基于Python语言,读取Excel表格文件数据,并将其中符合我们特定要求的那一行加以复制指定的次数,而不符合要求的那一行则不复制;并将所得结果保存为新的Excel表格文件的方法。 这里需要说明,在我们之前的文章Pyt…

Python爬虫——urllib_post请求百度翻译

post请求: post的请求参数,是不会拼接在url后面的,而是需要放在请求对象定制的参数中 post请求的参数需要进行两次编码,第一次urlencode:对字典参数进行Unicode编码转成字符串,第二次encode:将字…

【ArcGIS微课1000例】0070:制作宾馆酒店分布热度热力图

本文讲解在ArcGIS中,基于长沙市酒店宾馆分布矢量点数据(POI数据)绘制酒店分布热力图。 相关阅读: 【GeoDa实用技巧100例】004:绘制长沙市宾馆热度图 【ArcGIS Pro微课1000例】0028:绘制酒店分布热力图(POI数据) 文章目录 一、加载宾馆分布数据二、绘制热度图一、加载宾…

机器学习(十六):决策树

全文共18000余字,预计阅读时间约36~60分钟 | 满满干货,建议收藏! 一、介绍 树模型是目前机器学习领域最为重要的模型之一,同时它也是集成学习中最常用的基础分类器。 与线性回归、逻辑回归等算法不同,树模型并不只是…

Web3.0:重新定义数字资产的所有权和交易方式

随着区块链技术的发展和应用,数字资产的概念已经逐渐深入人心。数字资产不仅包括加密货币,还包括数字艺术品、虚拟土地、游戏道具等各种形式的数字物品。然而,在传统的互联网环境下,数字资产的所有权和交易方式往往受到限制和约束…

Java 常用的重构技巧指南 v1.0

前段时间,leader 在 review 代码的时候发现了代码中 存在的一部分的问题,导致 代码的复杂度太高了,包括大部分的sql 都是属于慢sql ,还是在建立了索引的情况下 , 代码的流程过于臃肿,而且本人编码的习惯,习…

Zookeeper集群 + Kafka集群 + Filebeat + ELK

目录 一:Zookeeper 概述 1、Zookeeper 定义 2、Zookeeper 工作机制 3、Zookeeper 特点 4、 Zookeeper 数据结构 5、 Zookeeper 应用场景 6、 Zookeeper 选举机制 (1)第一次启动选举机制 (2)非第一次启动选举机制…

如何快速爬取国内985大学学术学报pdf文件

背景 最近,在爬取关于国内985大学的学报时,我注意到大部分大学学报站点格式都采用相似的形式,并且PDF链接都使用自增的ID。然而,我也发现了一个问题,即大多数PDF链接的ID并不是连续的。现在我将向你分享一些方法&…

数据结构(王道)——线性表的存储结构之链表存储

线性表的链表存储: 一、单链表定义: 用代码定义一个单链表: 不带头结点的单链表定义: 带头结点的单链表定义: 单链表定义总结: 二、单链表的基本操作(插入删除查找) 1、插入 如何在…