zoukankan      html  css  js  c++  java
  • inotify+rsync实现文件双向实时同步

    1.先安装rsync

    yum install rsync //这里由于在docker里测试的,用yum安装包,可使用其他安装方式

    2.创建rsync的配置文件

    vi /etc/rsyncd.conf


    motd file = /etc/rsyncd.motd
    uid=root
    gid=root
    max connections=36000
    use chroot=no
    log file=/var/log/rsyncd.log
    log format = %t %a %m %f %b
    pid file=/var/run/rsyncd.pid
    lock file=/var/run/rsyncd.lock
    timeout = 300

    #同步模块
    [tongbu]
    path=/var/www/html  #同步的目录
    list=yes
    comment = this is comment 
    ignore errors = yes
    read only = no
    hosts allow = 172.17.0.3  #允许同步的服务器ip
    hosts deny = *
    auth users backup   #授权同步用户

    3.创建同步用户

    useradd backup  //创建用户
    passwd backup   //设置密码

    4.启动服务

    /usr/bin/rsync --daemon --config=/etc/rsyncd.conf

    ps -ef |grep rsyncd #查看服务是否启动

    5.在另外一台服务器,重新来一遍上面的操作,配置文件指定另一台的ip。

    /usr/bin/rsync -vzrtopg --delete --progress /var/www/html/ backup@172.17.0.3::tongbu --password-file=/etc/rsync.password  #执行同步
    --password-file 为同步用户的密码

    这样在一台服务器新建文件,另外一台可同步创建。

    inotify可实时监控文件目录变化事件,可以利用Inotify来实现实时同步

    创建同步脚本

    vi inotify.sh

    #!/bin/bash
    /usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib /var/www/html/ | while read file   #监听目录的modify,delete,create,attrib事件
    do
    /usr/bin/rsync -vzrtopg --delete --progress /var/www/html/ backup@172.17.0.3::tongbu --password-file=/etc/rsync.password   #执行同步

    echo "${files} was rsynced" >> /var/log/rsync.log 2>&1
    done

     多台服务器可实时多向同步 

    
    
  • 相关阅读:
    关于 HSSF 和 XSSF 功能的开发者入门指南 (Apache POI 操作 Excel)
    在Windows上安装MySQL(免安装ZIP版)
    Linux下解决中文乱码问题
    VMware安装VMware Tools
    (RHEL)Linux下的oracle(11g R2)安装过程
    每天学一点Python
    简单的Datatable转List,Json
    C# 刷票程序
    一些顿悟,和新的开始!
    每天学一点Python(2)
  • 原文地址:https://www.cnblogs.com/oceanL/p/14072037.html
Copyright © 2011-2022 走看看