哇~真的是你呀!今天是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.mzph.cn/news/2109.shtml

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

相关文章

微信小程序(二)

目录 1、input标签 一、表单绑定 1、数据绑定 2、输入获取 二、网络请求 1、介绍 2、注意 3、使用 4、基于Promise封装 三、自定义组件 1、创建 2、父向子组件通信 3、子向父组件通信 4、生命周期 四、vant weapp组件库 1、配置 2、使用 进入本章前的拓展&#…

代码随想录算法训练营第22天 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树,可以利用它的性质(左子树上所有节点的值都小于根节点的值,右子树上所有节点的值都大于根节点的值)找到两个节点的最近公共祖先。因此,可以进行如下操作:…

Jmeter(119)-函数threadNum妙用

今天的接口场景是:有N个用户需要每隔5秒去查询一次数据,也就是说N个用户会去循环执行同一个接口。一开始的时候将用户参数化时使用了counter, 要执行2个线程3次循环,发现每次循环时,接口中用户参数的数据就会不一样&am…

【AutoGluon_01】自动机器学习框架的安装与示例

文章目录 一、安装二、示例一 AutoGluon预测目标数据1、导入数据2、训练3、预测4、评估5、小结 三、示例二 AutoGluon多模态预测(Multimodal Prediction)1、导入数据2、训练3、预测4、评估 四、示例三 AutoGluon进行时间序列预测1、导入数据2、训练3、预…

漫谈大数据时代的个人信息安全(三)——“点赞之交”

大数据时代的个人信息安全系列三:“点赞之交” 1. 点赞之交2. 点赞诈骗3. 个人信息保护小贴士 互联网就像公路,用户使用它,就会留下脚印。 每个人都在无时不刻的产生数据,在消费数据的同时,也在被数据消费。 近日&am…

AJAX异步请求JSON数据格式

目录 前言 1.AJAX的实现方式 1.1原生的js实现方式 1.2JQuery实现方式 2.1语法 3.JSON数据和Java对象的相互转换 3.1将JSON转换为Java对象 3.2将Java对象转换为JSON 前言 AJAX:ASynchronous JavaScript And XML 异步的JavaScript 和 XML。 Ajax 是一种在…

git导出提交日志

%ai是2023-06-16 14:49:10 0800时间格式 Git - 查看提交历史Git 官方中文操作文档 Git - 查看提交历史 导出excel,csv格式 筛选作者的提交--author"ayuyuer" git log --prettyformat:"%h","%an","%ae","%ai","%s&qu…

微信小程序

页面跳转&#xff1a; navigator 显示跳转 跳转普通页面跳转 tab栏页面 open-type"switchTab"回退上一个 open-type"navigateBack" <navigator url"/pages/detail/detail?usernamecc&addresschengdu">detail</navigator>js跳…

Spring Boot 各种回滚骚操作实战(自动回滚、手动回滚、部分回滚)

概念 事务定义 事务&#xff0c;就是一组操作数据库的动作集合。事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行&#xff0c;我们称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行&#xff0c;我们称该事务被提交。…

springboot sentinel 整合 规则详情和代码实现-分布式/微服务流量控制

文章目录 sentinel控制台安装目标版本说明sentinel 规则整合验证pom.xml配置注解拦截资源控制规则---内存模式测试controller客户端接入控制台 测试sentinel控制台接口调用 下一篇&#xff1a;配置持久化策略规则外传 sentinel控制台安装 下载地址&#xff1a;https://github.…

Go语言之并发编程练习,GO协程初识,互斥锁,管道:channel的读写操作,生产者消费者

GO协程初识 package mainimport ("fmt""sync""time" )func read() {defer wg.Done()fmt.Println("read start")time.Sleep(time.Second * 3)fmt.Println("read end") }func listenMusci() {defer wg.Done()fmt.Println(&qu…

vue 下拉框显示从后端请求的数据

下拉框<!-- 给产品添加推广人员弹出框 --><el-dialog :title"titlePerson" :visible.sync"openAddPerson" width"1000px" append-to-body><el-select v-model"this.bindingProductPerson.recommendId" filterable plac…

【C++】-list的具体使用

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

HTML学习 第一部分(前端学习)

参考学习网站: 网页简介 (w3schools.com) 我的学习思路是&#xff1a;网站实践视频。 视频很重要的&#xff0c;因为它会给你一种开阔思路的方式。你会想&#xff0c;噢&#xff01;原来还可以这样。这是书本或者网站教程 所不能教给你的。而且&#xff0c;对一些教程&#…

Ubuntu搭建docker+laradock

使用Ubuntu搭建dockerlaradock windows 下载Ubuntu工具二选一 链接&#xff1a;https://pan.baidu.com/s/154K6MKdFZxWqaTn2q-6MSQ 提取码&#xff1a;06lc https://www.jianshu.com/p/b7e11d0dbe8c借鉴地址&#xff1a;https://zhuanlan.zhihu.com/p/547169542 备注&#x…

没有人能真正精通C++

目录 1、C的“双峰”特性 2、没人能真正精通C 3、世界仍然需要C 任何说自己很懂C的人可能都是在夸大其词。 我想你可能已经注意到了&#xff0c;是的&#xff0c;今天的大多数程序员都在使用Python、Rust、Go或是其他新的编程语言。大部分人已经不再需要掌握C、C等古老的编…

微信加粉计数器后台开发

后台包括管理后台与代理后台两部分 管理后台 管理后台自带网络验证卡密系统,一个后台可以完成对Pc端的全部对接,可以自定义修改分组名称 分享等等代理后台 分享页 调用示例 <?php$request new HttpRequest(); $request->setUrl(http://xxxxxxx/api); $request->…

【JavaScript】npm、Yarn 和 pnpm 的区别

npm、Yarn 和 pnpm 都是用于管理和构建 JavaScript 项目的包管理工具&#xff0c;以下是它们之间的一些区别和特点。 npm&#xff08;Node Package Manager&#xff09;&#xff1a; npm 是 Node.js 官方提供的包管理工具&#xff0c;是 JavaScript 生态系统中使用最广泛的包管…

IP获取归属地区(免费)

IP获取归属地区 使用 http://whois.pconline.com.cn/ipJson.jsp 这个 URL 来获取 IP 地址的归属城市信息 import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Objects; import javax.servlet.http.HttpServl…

Spingboot 多模块引入第三方jar包

1. 在需要的模块中引入jar包 2. 在此模块中的pom.xml 中引用 3. 要想打包部署服务器&#xff0c;需要在启动模块中添加配置信息 ps&#xff1a;启动模块要引用此模块才能将此一起jar打包部署 <build><plugins><plugin><groupId>org.springframework.…