linux学成之路(基础篇)(二十)rsync服务器

news2024/11/26 6:18:30

目录

前言

一、概述

监听端口

二、特点

快捷

安全

三、数据的同步方式

四、rsync传输方式

本地传输

远程传输

守护进程

五、命令

作为远程命令

作为rsync服务

选项

六、配置文件

全局配置

模块配置

守护进程传输

 七、rsync+inotfy实时同步

一、服务端

二、开发客户端

安装inotify工具 

 配置内核参数


前言

        rsync是一个用于文件同步和备份的开源工具。它可以在本地系统之间或本地与远程系统之间同步和复制文件。rsync使用快速差异算法来确定需要更新的文件部分,以便仅传输已更改的数据,从而提高同步效率。它可以在不同的操作系统之间工作,并支持通过SSH进行安全的远程同步。

        rsync具有灵活的配置选项,可以满足不同的需求。它可以按文件、目录、权限和时间戳等进行过滤,以控制同步的范围。rsync还支持增量备份和部分文件传输,从而减少数据传输量并节省带宽。

        使用rsync,您可以轻松地将文件从一个位置同步到另一个位置,无论是本地的不同目录还是本地与远程服务器之间的同步。它被广泛用于数据备份、网站部署、镜像镜像和远程文件同步等场景。

一、概述

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

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

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

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

监听端口

        TCP               873

二、特点

快捷

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

安全

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

三、数据的同步方式

        数据备份:拉取(下载)         pull

        数据恢复:推送(上传)           push

四、rsync传输方式

本地传输

        本地同步数据,类似于cp

远程传输

        远程同步数据,类似于scp

守护进程

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

五、命令

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

作为远程命令

        拉取         rsync [OPTION...] [USER@]HOST:SRC... [DEST]
        推送         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

选项

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

六、配置文件

全局配置

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

守护进程传输

配置        vim /etc/rsync.conf

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

                auth users=rsync_backup  # 用于指定认证用户
                secrets file=/etc/rsync.passwd  # 指定认证用户密码
                read only = false

                ignore errors                          # 屏蔽错误报错

                [backup]
                path=/backup

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

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

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

重启服务                            systemctl restart rsyncd

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

 通过密码文件实现免密传输            vim /etc/rsync.passwd
                                                                123456
                                                    chmod   600 /etc/rsync.passwd
rsync -avz /etc/hosts rsync_backup@192.168.100.2::backup --password-file /etc/rsync.passwd

 七、rsync+inotfy实时同步

一、服务端

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

        修改主配置文件
                uid = root
                gid = root
    [wwwroot]
            path = /var/www/html
            comment = httpd wwwroot
            read only = false
            hosts allow = 192.168.100.0/24

二、开发客户端

安装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(需要再次打开一个终端进行验证)

         vim /opt/inotify_rsync.sh

 

服务器验证

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

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

相关文章

Qgis二次开发-QgsMapLayer(加载矢量、栅格图层)

1.简介 QgsMapLayer是所有地图层类型的基类,这是所有地图层类型(矢量,栅格)的基类,首先定义一个QgsMapCanvas地图画布,然后画布上添加图层,使用以下方法设置图层集合。 //设置当前图层集合 void setLayers (const QL…

算法提高-动态规划-单调队列优化DP

单调队列优化DP AcWing 135. 最大子序和AcWing 1087. 修剪草坪AcWing 1089. 烽火传递AcWing 1090. 绿色通道 关于单调队列的初始化 AcWing 135. 最大子序和 注意hh 0,tt -1 tt 0初始化的时候队列有什么不同&#xff0c;主要还是要理解队列的实际意义 #include <iostre…

利用python绘制二维向量图

为了实现地层数据的变化趋势的可视化模拟&#xff0c;最近研究了python环境下的可视化方案&#xff0c;为后续的流体运动的仿真模拟做好储备&#xff0c;主要采用matplotlib中的quiver函数&#xff0c;实现二维等值线数据的随深度或者地层数据的变化趋势绘制。 一、运行环境&a…

MySQL--主从复制

目录 1.理解MySQL主从复制原理。 2.完成MySQL主从复制。 1.理解MySQL主从复制原理。 1.主要基于MySQL二进制日志 2.主要包括三个线程&#xff08;2个I/O线程&#xff0c;1个SQL线程&#xff09; 概括&#xff1a; 1、MySQL将数据变化记录到二进制日志中&#xff1b; 2、Slave…

【前端动画】点击移动放大出现蒙版,点击蒙版原路返回 css动画animation

<template><div><!-- 蒙版 Mask--><divv-if"isShowTableMask":class"${maskClass}"click"closeTableMask"></div><div style"" class"table-dialog" :class"${centerTableClass} …

Pytorch从入门到精通:二、dataset与datalodar

数据是深度学习的基础&#xff0c;一般来说&#xff0c;数据量越大&#xff0c;训练出来的模型也越强大。如果现在有了一些数据&#xff0c;该怎么把这些数据加到模型中呢&#xff1f;Pytorch中提供了dataset和dataloader&#xff0c;让我们一起来学习一下吧&#xff0c;datase…

AcWing 237. 程序自动分析

输入样例&#xff1a; 2 2 1 2 1 1 2 0 2 1 2 1 2 1 1输出样例&#xff1a; NO YES 解析&#xff1a; 并查集&#xff0c;由于 i, j 数据量为1e9&#xff0c;所以需要离散化。 数组要开2e5个&#xff0c;由于可能每条“约束条件”的数据都不一样。 #include<bits/stdc.h&…

Python-Go python模块与包 - GO问题 - GO容量测试

目录 go 模块与包复习&#xff08;Init函数 - go mod&#xff09; init函数有什么用&#xff1f;init函数是什么&#xff1f; go.mod文件是什么&#xff1f;有什么作用&#xff1f; python的模块与包 python中包的分类 1、内置模块&#xff1a;不需要安装&#xff0c;直接…

和chatgpt学架构04-路由开发

目录 1 什么是路由2 如何设置路由2.1 安装依赖2.2 创建路由文件2.3 创建首页2.4 编写HomePage2.5 更新路由配置2.6 让路由生效 3 测试总结 要想使用vue实现页面的灵活跳转&#xff0c;其中路由配置是必不可少的&#xff0c;我们在做开发的时候&#xff0c;先需要了解知识点&…

lwip-2.1.3自带的httpd网页服务器使用教程(四)POST类型表单的解析和文件上传

上一篇&#xff1a;lwip-2.1.3自带的httpd网页服务器使用教程&#xff08;三&#xff09;使用CGI获取URL参数&#xff08;GET类型表单&#xff09; 在阅读本篇内容之前&#xff0c;请修改httpd.c文件&#xff0c;修复lwip自带httpd服务器里面关于post的一个bug&#xff1a;bug…

系统集成|第一章(笔记)

目录 第一章 信息化知识1.1 信息与信息化1.1.1 信息1.1.2 信息系统1.1.3 信息化1.1.4 国家信息化体系要素 1.2 国家信息化战略和规划1.3 电子政务1.4 企业信息化和两化深度融合1.4.1 企业信息化1.4.2 企业应用集成1.4.2.1 电子商务系统1.4.2.2 企业资源规划系统1.4.2.3 客户关系…

【Java】 服务器cpu过高如何排查和解决?

文章目录 前言一、常见能够引起CPU100%异常的情况都有哪些&#xff1f;二、服务器CPU使用率飙升异常&#xff0c;黄金4步排查法三、排查 CPU 故障的常用命令四、什么场景会造成 CPU 低而负载确很高呢&#xff1f;五、监控发现线上机器内存占用率居高不下&#xff0c;如何分析进…

两个数组的dp问题--动态规划

一)最长公共子序列: 1143. 最长公共子序列 - 力扣&#xff08;LeetCode&#xff09; 一)定义一个状态表示:根据经验题目要求 1)选取第一个字符串[0&#xff0c;i]区间以及第二个字符串[0&#xff0c;j]区间作为研究对象&#xff0c;先选取两段区间研究问题&#xff0c;先求出[0…

redis(8):java连接redis

1 Jedis所需要的jar包依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.1.0</version></dependency> 2 Jedis常用操作 2.1 测试连通性 package com.example.demo;import redis.…

手写Spring,理解SpringBean生命周期

按照Spring使用习惯&#xff0c;准备环境 ​ 首先&#xff0c;写一个TigerApplicationContext&#xff0c;模拟Spring的Annotation Application。然后写一个config&#xff0c;接着写一个UserService。 由于Spring需要扫描bean&#xff0c;所以我们得定义一个扫描注解Componen…

【C++】-priority_queue(优先级队列的具体使用和模拟实现)以及仿函数的简单介绍

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

ubuntu 开启 ssh 服务 设置root远程登录

设置root用户密码 sudo passwd root安装ssh服务和vim编辑器 sudo apt -y install openssh-server vim开启ssh服务 sudo vim /etc/ssh/ssh_config去掉 配置文件中 Port 22 的注释后保存退出 设置root用户远程登录 sudo vim /etc/ssh/sshd_config将 PermitRootLogin prohibit-pas…

文章审核之敏感词过滤

技术选型 DFA实现原理 DFA全称为&#xff1a;Deterministic Finite Automaton,即确定有穷自动机。 存储&#xff1a;一次性的把所有的敏感词存储到了多个map中&#xff0c;就是下图表示这种结构 敏感词&#xff1a;冰毒、大麻、大坏蛋 工具类 最下面的main方法是测试用的&a…

vuejs源码之解析器

解析就是将模版解析成AST。 <div id"app"><p>{{num}}</p> </div>比如下面这个代码&#xff0c;然后转成AST之后是这个样子。 它是用javascript对象来描述一个接待您&#xff0c;一个对象表示一个节点。对象中的属性用来保存节点所需的各种数…

Docker基本概念+命令

Docker基本概念命令 一、Docker是什么&#xff1f;二、为什么Docker技术受欢迎三、Docker核心概念四、Docker安装五、Docker镜像操作1.搜索镜像2.获取镜像3.镜像加速下载4.查看镜像信息5.查看下载的镜像文件信息6.查看下载到本地的所有镜像7.获取镜像的详细信息8.修改镜像标签9…