• Rsync(二十七)


    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


    前言

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

  • 相关阅读:
    OpenMP的调度-以泊松方程求解为例子
    Educational Codeforces Round 132 (Rated for Div. 2) A.B.D
    内容理解之情感计算
    Selenium 三种等待方式详解 (强制等待、隐式等待、显示等待)
    元宇宙崛起:区块链与金融科技共绘数字新世界
    【汇编语言】3.汇编语言程序
    Verilog参数定义与仿真模块中的参数修改
    1000套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作【建议收藏】
    矩阵的相似性度量的常用方法
    MongoDB常用的语句
  • 原文地址:https://blog.csdn.net/Coisini_LZB/article/details/131808600