哇~真的是你呀!今天是LINUX中的RSYNC服务

目录

前言

一、概述

二、特性

三、rsync传输模式

四、rsync应用

五、格式

六、配置文件

七、守护进程传输

八、rsync+inotfy实时同步


一、概述

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

二、特性

1)快速:
    第一次传输全部,下一次传输差异
    rsync在传输过程中可以实行压缩和解压缩,使用更少的带宽

2)安全:
    可以使用scp、ssh等方式传输
    直接通过socket连接
    支持匿名传输、方便进行网站镜像

3)应用场景:增量同步、备份迁移

4)数据的同步方式:数据备份:拉取(下载)pull
                                  数据恢复:推送(上传)push

三、rsync传输模式

1)本地传输:  本地同步数据,类似于cp

2)远程传输:远程同步数据,类似于scp

3)守护进程: 通过模块化的方式实现批量传输

四、rsync应用

安装  yum -y install rsync( 如果已经安装,直接启动 systemctl start rsyncd)

监听端口号TCP/873

五、格式

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

1)作为远程命令
    拉取
        rsync [OPTION...] [USER@]HOST:SRC... [DEST]
    推送
        rsync [OPTION...] SRC... [USER@]HOST:DEST

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

3)选项
    -a
        归档模式,递归并保留对象属性,等同于-rlptgoD
    -v
        -verbose           显示同步过程的详细信息
    -z
        在传输文件时进行压缩

4)举例
    本地
        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 

六、配置文件

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

 

七、守护进程传输

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

 

 

2.操作

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

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

3)准备模块目录
    mkdir /backup
    chown rsync.rsync /backup

4)重启服务
    systemctl restart rsyncd

 

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

 

6)通过密码文件实现免密传输
    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

 回到服务器验证

 

八、rsync+inotfy实时同步

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

2.开发客户端
  1)  安装inotify工具
         inotify-tools
        tar xf  inotify-tools-3.14.tar.gz
        ./configure && make && make install
    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
    3) inotifywait -mrq -e modify,create,move,delete /var/www/html
    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
    5)赋予执行权限
        chmod +x inotify_rsync.sh
    6)写入文件
        vim /etc/rc.local
            /root/inotify_rsync.sh


总结

我们在进行配置时有以下几点要注意:1.我们在修改主配置文件时要仔细避免书写错误、以及我们模块的路径要书写正确,否则会出现找不到模块的错误。2.在配置完成后需要修改我们的模块属主、属组;以及密码文件的权限否则会出现文件传输错误,没有权限的问题。3.注意我们环境是否配置正确如果没有关闭防火墙、seliux则会出现找不到网关的错误。

 

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

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

相关文章

04.MySQL——用户管理

用户管理 用户管理的价值 用户 用户信息 MySQL中的用户,都存储在系统数据库mysql的user表中 use mysql;select host,user,authentication_string from user;host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从…

对Element DatePicker时间组件的封装,时间组件开始时间和结束时间绑定

背景 我们时常有时间范围选择,需要选择一个开始时间和一个结束时间给后端,但我们给后端的是两个字段, 分别是开始时间和结束时间,现在使用element绑定的值是一个数组,我们还要来回处理,很麻烦列表也的查询…

leaflet 沿河流流向显示河流名字

1.效果图&#xff1a; 2.代码块 首先需要借助一个插件3mapslab-Leaflet.streetlabels&#xff08;这个插件也可用于显示街道名字用的&#xff09; 插件可在leaflet官网上下载及案例&#xff01; --- layout: default ---<div idmap style"width:100%;min-height:30…

【数据结构】二叉树详解(1)

⭐️ 前言 ✨ 二叉树的概念性质 ⭐️ 二叉树链式结构的实现 结构定义&#xff1a; #include <stdio.h> #include <stdlib.h> #include <assert.h>typedef int BinaryTreeDataType;typedef struct BinaryTreeNode {BinaryTreeDataType value;struct Binary…

关于AES 和 BASE64 的理解

BASE64 首先 base64 是一种编码方式&#xff0c;它的字符集由64个不同字符组成&#xff08;A-Z、a-z、0-9和两个额外字符/&#xff09;&#xff0c;因此每个Base64字符都占用6个比特&#xff08;2^6 64&#xff09; Base64编码后的数据长度 4 * ceil(原始数据长度 / 3) 其中…

vue做移动端上拉加载 删除当前列表某个数据 保持当前状态 继续获取下一页不影响正常的数据

本文中使用vant组件的list列表制作的 当然主要是看这个难题的思路 不必计较用的什么组件库 换做其他的组件库 思路还是一样的 //主要思路是把点击删除的数据让后端置为false // 比如我请求了3页&#xff0c;一页10条数据 // 一共30条&#xff0c;我一条一条删除&#xff0c;点…

Redis : zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录

In file included from adlist.c:34:0: zmalloc.h:50:31: 致命错误&#xff1a;jemalloc/jemalloc.h&#xff1a;没有那个文件或目录 #include <jemalloc/jemalloc.h> 解决 : 如上图使用命令 make MALLOClibc

【EXCEL】数据录入的快捷键和正确格式

目录 0.环境 1.内容概述 2.具体内容 2.1数据录入换行换列的快捷键&#xff08;标准的数据输入方式&#xff09; 2.2日期的正确格式和使用&#xff08;标准日期格式与长日期&#xff09; 2.2.1 标准日期 2.2.2 长日期 2.2.3 显示当前日期和时间的快捷键 2.3百分比的正确…

FPGA adrv9002 4收4发板卡,支持NVME SATA EMMC 光口 FMC

板卡采用ADI 射频直采芯片ADRV9002 &#xff0c;支持4收4发支持外部本振 跳频 同时支持4X 10G光口对外传输&#xff0c;FMC扩展 。同时支持4X NVME接口&#xff0c;可以实时流盘&#xff0c;备份一路SAT A接口&#xff0c;板卡同时预留了EMMC&#xff0c;可以PS PL选通访问&…

C++ stack和queue 模拟实现

stack和queue 模拟实现 模拟栈实现模拟队实现 模拟栈实现 1 栈是一种容器适配器&#xff0c;专门设计用于后进先出的后进先出环境&#xff0c;在这种环境中&#xff0c;元素只从容器的一端插入和提取。 2 栈是作为容器适配器实现的&#xff0c;这些适配器是使用特定容器类的封装…

linux安装git

linux安装git 命令行安装方法下载安装配置git用户信息 命令行安装方法 Debian/Ubuntu&#xff1a;使用apt命令进行安装 sudo apt install git但是我安装遇到问题&#xff1a; 这是应为之前安装了搜狗拼音的原因&#xff0c;卸载即可 apt-get autoremove sogoupinyinapt-get …

23.JavaWeb-集群+Nginx+JMeter

1.集群概念 平时用的服务是的并发量是有限的&#xff0c;像tomcat只有不到500的并发量&#xff0c;不能满足高并发的需求&#xff0c;因此就采用了集群的方法&#xff0c;用多个服务器 当用户请求集群系统时&#xff0c;集群给用户的感觉就是一个单一独立的服务器&#xff0c;而…

基于SpringBoot+vue的民宿管理平台系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

JS-26 认识防抖和节流函数;自定义防抖、节流函数;自定义深拷贝、事件总线函数

目录 1_防抖和节流1.1_认识防抖和节流函数1.2_认识防抖debounce函数1.3_防抖函数的案例1.4_认识节流throttle函数 2_Underscore实现防抖和节流2.1_Underscore实现防抖和节流2.2_自定义防抖函数2.3_自定义节流函数 3_自定义深拷贝函数4_自定义事件总线 1_防抖和节流 1.1_认识防…

Failed to initialize NVML: Driver/library version mismatch (解决)

问题描述 运行nvidia-smi报错&#xff1a; Failed to initialize NVML: Driver/library version mismatch解决方法 只需一步&#xff1a;下载一个安装包&#xff0c;运行一个命令来重新安装cuda driver和cuda toolkit&#xff08;在一个包里&#xff09;。 到这里&#xff1…

听GPT 讲K8s源代码--pkg(六)

pkg/kubelet/cm 目录是 Kubernetes 源代码中的一个目录&#xff0c;包含了 kubelet 组件中的 ConfigMap 相关代码。 在 Kubernetes 中&#xff0c;ConfigMap 是一种用于存储非机密数据的 API 对象类型&#xff0c;它可以用来存储配置信息、环境变量、命令行参数等等。 kubelet …

学堂在线数据结构(上)(2023春)邓俊辉 课后题

The reverse number of a sequence is defined as the total number of reversed pairs in the sequence, and the total number of element comparisons performed by the insertion sort in the list of size n is: 一个序列的逆序数定义为该序列中的逆序对总数&#xff0c;…

OKCC呼叫中心的坐席监控功能有什么

最近很多客户都在跟我谈他们企业的电话客服工作量都非常大&#xff0c;虽然客服人员在服务时应该态度谦和&#xff0c;但是遇到难缠的客户&#xff0c;客服人员总有脾气忍不住的时候&#xff0c;言语上会带有情绪&#xff0c;这些客服人员会因为服务水平欠佳让客户不满意从而产…

【Elemnt-UI——el-popover点击出现多个弹框】

效果图 解决 :append-to-body"false"添加这个属性就可以了 <el-popoverv-model"item.contextmenuVisible"placement"bottom-end":append-to-body"false"trigger"click":visible-arrow"false"hide"item.…

236. 二叉树的最近公共祖先

题目描述&#xff1a; 主要思路&#xff1a; 利用dfs遍历树&#xff0c;依次判断节点是否为公共祖先节点。 class Solution { public:TreeNode* ans;bool dfs(TreeNode* root, TreeNode* p, TreeNode* q){if(!root)return false;bool ldfs(root->left,p,q);bool rdfs(root…