• rsync+inotify实现服务器之间文件实时同步(分享十三)


    下面是2个服务器的结构,分别为主机名、ip、同步的目录,并将2台服务器均是CentOS 6.7发行版本。

    Server 192.168.0.1    /tmp  

    Client   192.168.0.2   /tmp

    1、安装rsync(提前查看是否系统自带rsync)

    #安装rsync和xinetd,并创建目录:
    yum install rsync xinetd
    
    #配置xinetd:
    vi /etc/xinetd.d/rsync
    #disable = yes修改为
    disable = no
    
    启动xinetd服务:
    service xinetd start

    2、建立密码认证文件

    echo "test" >/etc/rsync.passwd
    chmod 777 /etc/rsync.passwd 
    3、安装inotify
    cd /usr/src/ 
    wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz 
    tar zxvf inotify-tools-3.14.tar.gz 
    cd inotify-tools-3.14 
    ./configure --prefix=/usr/local/inotify 
    make && make install 
    通过shell脚本rsync.sh(服务端)
    #!/bin/bash 
    host=192.168.0.2
    src=/tmp/     
    des=web 
    user=webuser 
    /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src  
    | while read files 
    do 
    /usr/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd $src $user@$host::$des 
    echo "${files} was rsynced" >>/tmp/rsync.log 2>&1 
    done
    chmod 764 rsync.sh
    sh /tmp/rsync.sh &

    我们还可以把rsync.sh脚本加入到开机启动项里

    echo "/tmp/rsync.sh" >> /etc/rc.local 
     
    客户端:
    1、安装rsync(备份服务器只安装rsync)
    #安装rsync和xinetd,并创建目录:
    yum install rsync xinetd
    
    #配置xinetd:
    vi /etc/xinetd.d/rsync
    #disable = yes修改为
    disable = no
    
    启动xinetd服务:
    service xinetd start

    2、建立用户与密码认证文件

    echo "webuser:test" > /etc/rsync.passwd

    3、建立rsync配置文件

    vim /etc/rsyncd.conf

    uid = root 
    gid = root 
    use chroot = no 
    max connections = 10 
    strict modes = yes 
    pid file = /var/run/rsyncd.pid 
    lock file = /var/run/rsync.lock 
    log file = /var/log/rsyncd.log 
    [web] 
    path = /tmp/ 
    comment = web file 
    ignore errors 
    read only = no 
    write only = no 
    hosts allow = 192.168.0.2 
    hosts deny = * 
    list = false 
    uid = root 
    gid = root 
    auth users = webuser 
    secrets file = /usr/local/rsync/rsync.passwd 

    4、启动rsync

    service xinetd start
    chkconfig xinetd on #设置开机自启动

    三、测试

    现在rsync与inotify在server端安装完成,rsync在备份服务器client端也安装完成。接下来就可以来测试一下:

    在server里创建个test-rsync文件,看看client是否能收到

    [root@Server tmp]# touch test-rsync

    再看client端是否有test-rsync文件,同时client端的tmp目录文件是否与server端的文件完全一致。如果一致,则表示已经设置成功。

  • 相关阅读:
    深入浅出Blazor webassembly之程序配置
    深入浅出Blazor webassembly之通过CascadingValue组件实现向子级组件传值
    深入浅出Blazor webassembly之数据绑定写法
    深入浅出Blazor webassembly之浏览器WSAM性能测试
    重构的秘诀:消除重复,清晰意图
    在多数据源中对部分数据表使用shardingsphere进行分库分表
    logstach http input
    Addax 备忘
    WIN10下面0x00000bcb共享打印机无法连接怎么办?
    Calcite(二): 从list到tree的转换1
  • 原文地址:https://www.cnblogs.com/zywu-king/p/8000163.html
Copyright © 2020-2023  润新知