• rsync+inotify实时同步+双向同步


    准备主机

    192.168.1.247 (源) /home/appdata
    192.168.1.248 (目的) /home/appdata
    实现效果:
    1.用rsync手动将192.168.1.247 的/home/appdata同步到192.168.1.248的/home/appdata目录。
    2.用inotify组件实现文件的实时同步
    3.实现两个服务器的双向实时同步

    手动单向同步

    目的主机操作(192.168.1.248

    安装 rsync
    yum -y install rsync
    修改 rsync 配置文件
    vim /etc/rsyncd.conf
    1. transfer logging = yes
    2. log file = /var/log/rsyncd.log
    3. pid file = /var/run/rsyncd.pid
    4. lock file = /var/run/rsync.lock
    5. uid = nobody
    6. gid = nobody
    7. use chroot = yes
    8. ignore errors
    9. read only = no
    10. [data]
    11. comment = web content
    12. path = /home #配置data所指向的path
    13. auth users = root #允许的操作用户
    14. secrets file = /etc/rsyncd.secrets #配置客户端的用户密码
    15. host allow = 192.168.1.247/255.255.255.255 #允许访问的主机
    16. list = false
    17. fake super = yes
    修改用户密码文件
    vim /etc/rsyncd.secrets
    root:123456
    修改密码文件权限
    chmod 600 /etc/rsyncd.secret
    创建备份文件夹修改权限和属组
    mkdir /home/appdata
    chmod -R 777 /home/appdata
    chown -R nobody:nobody /home/appdata
    启动后台 rsync 进程
    rsync --daemon

    源主机操作(192.168.1.247

    安装 rsync
    yum -y install rsync
    添加rsync用户密码文件 ,与备份服务器的相对应,这个文件只需要写入密码,修改权限为600
    echo "abcd@1234" >> /etc/rsync.pass && chmod 600 /etc/rsync.pass
    命令同步 ,如果添加--delete参数可以删除多余得文件
    /usr/bin/rsync -avz --delete --password-file=/etc/rsync.pass /home/appdata root@192.168.1.248::data
    rsync 参数详解
    -a 参数,相当于 -rlptgoD -r 是递归 -l 是链接文件,意思是拷贝链接文件; -p 表示保持文件原有权限;-t 保持文件原有时间; -g 保持文件原有用户组; -o 保持文件原有属主; -D 相当于块设备文件);
    -z 传输时压缩;
    -P 传输进度;
    -v 传输时的进度等信息;
    --delete 删除操作
    --exclude 忽略文件或目录

    inotify自动同步

    在上面的基础上我们需要对源主机增加以下操作来完成自动同步
    安装下载工具

    yum -y install wget
    yum -y install gcc gcc-c++

    下载inotify安装包

    wget --no-check-certificate https://jaist.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz

    解压安装包并进入解压文件夹

    tar -zxf inotify-tools-3.13.tar.gz
    cd inotify-tools-3.13/

    安装inotify
    ./configure
    make
    make install
    检查是否安装成功
    inotifywait
    No files specified to watch!表示成功了
    编写inotify脚本调用rsync
    1. #!/bin/bash
    2. src=/home/xiongan
    3. inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src | while read file;
    4. do
    5. /usr/bin/rsync -avz --delete --password-file=/etc/rsync.pass /home/appdata root@192.168.1.248::data > /dev/null 2>&1
    6. echo "${file} was rsynced" >>/var/log/rsync.log 2>&1
    7. done
    后台执行脚本
    nohup bash inotify_back.sh &

  • 相关阅读:
    uni-app 、Spring Boot 、ant Design 打造的一款跨平台包含小说(仿真翻页、段落听书)、短视频、壁纸等功能含完备后台管理的移动应用
    SpringFramework之基于配置类管理Bean
    数字集成电路设计(五、仿真验证与 Testbench 编写)(一)
    一文快速上手 Nacos 注册中心+配置中心!
    Java多线程:从基本概念到避坑指南
    代码技巧: 类中同一个函数可以同时存在常函数版本和普通函数版本(c++)
    网络编程扩展
    生态系统NPP及碳源、碳汇模拟实践技术应用
    酒水行业的痛点以及解决方式
    servlet使用
  • 原文地址:https://blog.csdn.net/weixin_44680802/article/details/133910826