• 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目录里新增或删除文件进行测试

  • 相关阅读:
    postgresql创建表
    PG查询数据库大小
    unicode字符集范围
    删除mysql数据中的空格和换行符
    无法生成模型:“System.Data.StrongTypingException: 表“TableDetails”中列“IsPrimaryKey”的值为 DBNull
    ubuntu 16.04 64位 coreseek
    linux wps 缺失字体问题解决
    误删除/var/lib/dpkg解决办法
    Microsoft Office CVE-2017-8570
    mariadb ==> 开机自启动
  • 原文地址:https://www.cnblogs.com/ping-y/p/5825692.html
Copyright © 2020-2023  润新知