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

news2024/11/25 14:41:32

目录

前言

一、概述

二、特性

三、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.coloradmin.cn/o/771703.html

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

相关文章

[读论文]---On Distillation of Guided Diffusion Models

该论文解决的问题 1 简要描述 2 在之前的工作中存在下述问题 计算过程需要计算: 1 unconditional的unet 2 conditional(w text)的unet 下图展示了计算过程 对应的代码 pipelines-> stable_diffusion-> pipline_stable_diffusion.py-> StableDiffusionPipeling-> 7…

vue-cli多页面配置(vue2.0)

目录 概述 多页面的配置 步骤1:编写配置文件 vue.config.js 步骤2:在src目录下创建目录pages 步骤3:创建HTML文件(主组件挂载点) 测试 完毕,总结 概述 我们知道使用vue脚手架vue-cli创建的项目默认是…

Python 集合 add()函数使用详解,集合添加元素

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 add函数使用详解 1、元素的顺序2、可以添加的元素类型3、添加重复的元素4、一次只…

TRT4-trt-integrate - 1 YOLOV5导出、编译、推理

模型导出 修改Image的Input动态维度 首先可以看到这个模型导出的时候Input有三个维度都是动态,而我们之前说过只需要一个batch维度是动态,所以要在export的export onnx 进行修改,将 torch.onnx.export(model, im, f, verboseFalse, opset_ver…

百度翻译申请KEY和ID

1.进入百度翻译网址:https://api.fanyi.baidu.com/ 2.右上角登录账号 3.跟着点点点 填写申请信息,剩下不用写 4.跳转到https://api.fanyi.baidu.com/api/trans/product/desktop 在底部查看KEY和ID

每日一题2023.7.19|ACM模式

文章目录 C的输入方式介绍cin>>cin.get(字符变量名)cin.get(数组名,接收字符数目)cin.get()cin.getline() getline()gets()getchar() AB问题|AB问题||AB问题|||ABⅣAB问题ⅤAB问题Ⅵ C的输入方式介绍 参考博客 cin>> 最基本,最常用的字符或者数字的输…

产品管理必备工具:选择最适合你的工具,让产品管理更高效!

Zoho Projects是一个能够帮助企业组织高效研发工作、快速推向市场并赢得用户青睐的有效工具。通过以下六个步骤,企业可以最大化地利用Zoho Projects,实现高效的产品研发和运营。 第一步:规划产品路线 在甘特图上勾画产品路线图,为…

STM32单片机示例:多个定时器同步触发启动

文章目录 前言基础说明关键配置与代码其它补充示例链接 前言 多个定时器同步触发启动是一种比较实用的功能,这里将对此做个示例说明。 基础说明 该示例演示通过一个TIM使能时同步触发使能另一个TIM。 本例中使用TIM1作为主机,使用TIM1的使能信号作为…

OpenCv之图像直方图

目录 一、基本概念 二、使用OpenCv统计直方图 三、使用掩膜的直方图 一、基本概念 图像直方图是用一表示教字图像中亮度分布的直方图,标绘了图像中每个高度值的像素数。可以借助观察该有方图了解需要如何调整亮度分布的直方图。这种直方图中,横坐标的左…

Android 个人开发者如何接入广告SDK,实现app流量变现

接入广告的APP连接 大家可以下载看看(无需积分) 链接: https://download.csdn.net/download/qq_38355313/88063389 开屏广告示意图: 1.个人开发者如何添加广告SDK? 像大厂的广告SDK,比如穿山甲SDK,点广…

SpringMvc配置静态资源访问路径

文章目录 1. 整体流程2. registry.addResourceHandler()2.1 函数分析2.2 结果演示 3. ResourceHandlerRegistration.addResourceLocations()3.1 函数分析3.2 结果演示 1. 整体流程 1. 写一个配置类继承WebMvcConfigurationSupport 2. 利用 registry.addResourceHandler("…

ylb-接口4投资排行榜

总览: 1、使用Redis存储投资信息 2、Redis常量类 在common模块constants包,创建一个Redis常量类(RedisKey): package com.bjpowernode.common.constants;public class RedisKey {/*投资排行榜*/public static fin…

【雕爷学编程】Arduino动手做(164)---Futaba S3003舵机模块3

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

计算机vcruntime140.dll丢失的解决方法,重新安装教程

vcruntime140.dll是Microsoft Visual C Redistributable文件中的一个动态链接库(DLL)。这个文件是由Microsoft开发的,用于支持C编程语言的运行环境。vcruntime140.dll是Windows系统非常重要的文件,通常会被一些应用程序或游戏所需…

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_认识防…

【源码解析】Mybatis执行原理

Mybatis执行原理 1.获取SqlSessionFactory2.创建SqlSession3.创建Mapper、执行SQL MyBatis 是一款优秀的持久层框架,MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和…

深入篇【C++】谈vector中的深浅拷贝与迭代器失效问题

深入篇【C】谈vector中的深浅拷贝与迭代器失效问题 Ⅰ.深浅拷贝问题1.内置类型深拷贝2.自定义类型深拷贝 Ⅱ.迭代器失效问题1.内部迭代器失效2.外部迭代器失效 Ⅰ.深浅拷贝问题 1.内置类型深拷贝 浅拷贝是什么意思?就是单纯的值拷贝。 浅拷贝的坏处: ①…

❤️创意网页:HTML5,canvas创作科技感粒子特效(科技感粒子、js鼠标跟随、粒子连线)

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…

力扣 452. 用最少数量的箭引爆气球

题目来源:https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/ C题解1: 根据x_end排序,x_start小的在前,这样可以保证如果第 i 个球的x_end大于等于第 j 个球的x_start时,第 j 个球…

TabBar和TabBarView实现顶部滑动导航

home.dart子页面主要代码&#xff1a; import package:flutter/material.dart;class HomePage extends StatefulWidget {const HomePage({super.key});overrideState<HomePage> createState() > _HomePageState(); }class _HomePageState extends State<HomePage&…