• linux下rsync的同步


    rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync****主机同步

    文件下载地址:

    链接:https://pan.baidu.com/s/1tLiY7FwVEeEZo5zSxZ43Aw

    提取码:8888

    这里简单说下环境,A是部署了机房的服务器,B是空的,需要把A的文件备份到B的服务器

    在A服务器下操作

    1.解压在/home下

    cd /home
    
    tar -xzf rsync-3.1.2.tar.gz
    

    2.编译及安装

    cd rsync-3.1.2
    
    ./configure
    

    make && make install
    

    3.rsync主要命令选项:

    -r:递归模式,对子目录以递归模式处理

    -l:--links 保留软链结

    -v:--verbose 详细模式输出

    -a:--archive 权限保存模式,表示以递归方式传输文件,并保持所有文件属性,相当于-rlptgoD

    -z:--compress 压缩模式,对备份的文件在传输时进行压缩处理

    -p:--perms 保持文件权限,文件原有属性。

    -o:--owner 保持文件原有属主信息。

    -g:--group 保持文件原有属组信息。

    -D:--devices 保持设备文件信息。

    -t:--times 保持文件时间信息。

    -A:保持ACL属性信息

    -D:保留设备文件及其其他特殊文件

    --delete:删除目标位置有而原始位置没有的文件

    --password-file=FILE,从FILE中得到密码

    总结:

    常用的****-avz

    同步模式:

    下行:rsync用户@主机ip:/远程目录本地目录      
    rsync -az root@192.168.12.130:/rsync/netzxw15
    意思是把别的电脑文件下载到本地
    
    上行:rsync本地目录用户@主机ip:/远程目录
    rsync -az /netzxw15 root@192.168.12.130:/rsync
    意思是把本地的文件传给别的电脑
    

    4.创建软连接:

    ln -s /home/rsync-3.1.2/rsync /usr/bin/rsync
    

    5测试:

    A:部署了3D服务的机器,192.168.10.161

    B:需要把3D文件同步到B服务器,192.168.10.162

    在A ,B的 /home/新建一个test的文件夹,在A里面新建5个txt文件

    在A操作

    我们把A的五个文件同步到B上面,因为我们是传给B,所以是上传

    rsync -avz /home/test/* root@192.168.10.161:/home/test   //把本机的/home/test下的所有文件 传给192.168.10.161下的/home/test 里面
    

    输入密码即可
    同步成功

    5.在A,B服务器上新建一个同步的用户,账号密码设置成一样的,并且设置好权限,免密同步

    创建用来做数据同步的用户,并给予用户对目录的相应权限,一般使用 ACL 设置权限
    # useradd rsync
    

    # passwd rsync
    

    设置好密码

    # setfacl -m u:rsync:rwx /home/wxq    //这里的指的是新建的用户只有指定的目录权限,实际情况替换为机房所在文件夹
    

    ssh-keygen -t rsa -b 2048
    

    一路回车

    ssh-copy-id rsync@192.168.10.162    //传送到B服务器上面
    

    输入yes

    输入密码,刚才设置的rsync用户的密码

    咱们用ssh登录测试一下,无需输入密码就可以进去了

    ssh rsync@192.168.10.162
    

    这时候我们测试一下同步就不需要密码了,我们在161上新建了一个文件,我们使用同步到162上

    我们看到此时就不需要密码就可以实现了

    7.后台自动运行同步文件

    Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。
    

    安装 inotify

    在A服务器.部署了机房上使用root安装

    cd /home/
    
    tar -xvf inotify-tools-3.13.tar.gz
    

    cd inotify-tools-3.13/
    
    ./configure && make && make install
    

    inotifywait  命令 格式
    格式:inotifywait -mrq -e 监控动作 1,监控动作 2 /监控目录 &
    示例:inotifywait -mrq -e create,delete /filesrc &
    -m:始终保持事件监听状态
    -r:递归查询目录
    -q:只打印监控事件的信息
    监控动作:modify(内容),create,attrib(权限),move,delete
    

    rsync+inotify实现数据同步

    使用root操作

    在部署机房的服务器上操作

    cd /home
    

    脚本1:只会同步增加修改的文件,不会同步删除的文件

    vi rsync.sh
    
    #!/bin/bash
    a="inotifywait -mrq -e create,delete,modify /home/wxq/"
    b="rsync -avz /home/wxq/ rsync@192.168.10.162:/home/wxq/"
    $a | while read directory event file  #while 判断是否接收到监控记录
    do
    $b
    done
    

    脚本2:无论是新增还是修改,删除都会同步

    a="inotifywait -mrq -e create,attrib,move,delete,modify /home/wxq/"
    b="rsync -avz --delete /home/wxq/ rsync@192.168.10.162:/home/wxq/"
    $a | while read directory event file
    do
    $b
    done
    

    按下 :wq! 即可保存

    su rsync 
    

    我们开始执行脚本

    bash /home/rsync.sh &    //表示在后台执行
    

    接下来我们看看效果


    __EOF__

  • 本文作者: 北城青
  • 本文链接: https://www.cnblogs.com/sk777/p/16809100.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    Effects of four feedbacks on input resistance, output resistance, and bandwidth
    [云原生k8s] k8s资源限制以及探针检查
    【数据分析】基于matlab GUI齿轮箱振动数据分析【含Matlab源码 2122期】
    vue2和vue3的声明周期
    CSS特效002:花样的鼠标悬停效果
    在GORM中使用并发
    经典算法之顺序查找法
    比特大陆:全员工资停发!昔日的“矿机一哥”遇现金流危机?
    动态规划算法 | 最长递增子序列
    《痞子衡嵌入式半月刊》 第 99 期
  • 原文地址:https://www.cnblogs.com/sk777/p/16809100.html