zoukankan      html  css  js  c++  java
  • Rsync+Inotify同步

    rsync服务安装与《rsync+sersync同步》环境一样!

    安装inotify-tools

    在源服务器10.10.2.191上操作:

    1.查看服务器内核是否支持inotify

    ll /proc/sys/fs/inotify   #列出文件目录,出现下面的内容,说明服务器内核支持inotify 
    -rw-r--r-- 1 root root 0 Mar  7 02:17 max_queued_events
    -rw-r--r-- 1 root root 0 Mar  7 02:17 max_user_instances
    -rw-r--r-- 1 root root 0 Mar  7 02:17 max_user_watches

    2.上传inotify-tools-3.14.tar.gz到/usr/local/src目录下

    cd /usr/local/src
    tar zxvf inotify-tools-3.14.tar.gz 
    cd inotify-tools-3.14 
    ./configure --prefix=/usr/local/inotify
    make  
    make install  

    3.设置系统环境变量,添加软连接

    echo "PATH=/usr/local/inotify/bin:$PATH" >>/etc/profile.d/inotify.sh
    source /etc/profile.d/inotify.sh  #使设置立即生效
    echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf
    ln -s /usr/local/inotify/include  /usr/include/inotify

    4.修改inotify默认参数(inotify默认内核参数值太小)

    查看系统默认参数值
     
    sysctl -a | grep max_queued_events
    结果是:fs.inotify.max_queued_events = 16384
     
    sysctl -a | grep max_user_watches 
    结果是:fs.inotify.max_user_watches = 8192
    
    sysctl -a | grep max_user_instances
    结果是:fs.inotify.max_user_instances = 128
    修改参数:
    sysctl -w fs.inotify.max_queued_events="99999999"
    sysctl -w fs.inotify.max_user_watches="99999999"
    sysctl -w fs.inotify.max_user_instances="65535"
     
    vi /etc/sysctl.conf #添加以下代码
    
    fs.inotify.max_queued_events=99999999
    fs.inotify.max_user_watches=99999999
    fs.inotify.max_user_instances=65535
    :wq!

    5.创建脚本,实时触发rsync进行同步

    vi /usr/local/inotify/rsync.sh   
    
    #!/bin/bash
    
    dstip=10.10.2.192
    srcdir=/root/download
    for ip in $dstip
    
    do
    
    rsync -avH --port=873 --progress --delete  /root/download/  centos@$dstip::centos --password-file=/etc/passwd.txt  
    done
    
    /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $srcdir |  while read file
     
    do
     
    for ip in $dstip
     
    do
    
    rsync -avH --port=873 --progress --delete   /root/download/ centos@$dstip::centos --password-file=/etc/passwd.txt 
    
    echo "  ${file} was rsynced" >> /tmp/rsync.log 2>&1
     
    done
     
    done

    6.设置脚本开机自动执行

    vi /etc/rc.d/rc.local  #编辑,在最后添加一行
    sh /usr/local/inotify/rsync.sh &  #设置开机自动在后台运行脚本
    :wq!  #保存退出

    7.测试inotify实时触发rsync同步脚本是否正常运行

    在源服务器10.10.2.191的/root/download上创建文件夹test
    mkdir /root/download/test

    重新启动源服务器:10.10.2.191

    等系统启动之后,查看目标服务器10.10.2.192上/root/download是否存在test目录

    如果以上测试都通过,说明inotify实时触发rsync同步脚本运行正常。


    8.运行rsync_inotify.sh脚本,然后在源服务器10.10.2.191的/root/download目录里新增或删除文件进行测试

  • 相关阅读:
    SPOJ GSS4 Can you answer these queries IV ——树状数组 并查集
    SPOJ GSS3 Can you answer these queries III ——线段树
    SPOJ GSS2 Can you answer these queries II ——线段树
    SPOJ GSS1 Can you answer these queries I ——线段树
    BZOJ 2178 圆的面积并 ——Simpson积分
    SPOJ CIRU The area of the union of circles ——Simpson积分
    HDU 1724 Ellipse ——Simpson积分
    HDU 1071 The area ——微积分
    HDU 4609 3-idiots ——FFT
    BZOJ 2194 快速傅立叶之二 ——FFT
  • 原文地址:https://www.cnblogs.com/ping-y/p/5825692.html
Copyright © 2011-2022 走看看