• 本网豪情赞助商

  • 微信小程序开发:各种页面特效集合
  • 小程序直播组件协议
  • 微信小程序之特殊效果及功能
  • MySql数据库备份与恢复——使用mysqldump 导
  • 宝塔面板mysql恢复
  • Python3+Selenium 配置Chrome选项
  • MySQL执行外部sql脚本文件命令报错:unknown
  • Win10系统左键点击开始菜单左键没反应,点右
  • Linux下安装Oracle出现的一些错误,以及解决
  • mysql-bin请出log
  • h3>

    CentOS6.5实现rsync+inotify实时同步


    文章摘要: rsync,实时同步


    文章TAG: rsync

    1.架构

    服务器端:192.168.202.135

    客户端:192.168.202.129

    2.rsync服务器端安装配置

     
    yum install rsync -y    #安装rsync服务

    为rsync服务提供配置文件:

    vim /etc/rsyncd.conf    #文件默认不存在,添加以下内容
     
    uid = root    #启动服务进程的用户
    gid = root    #启动服务进程的用户组
    port = 873    #以守护进程启动rsync服务时监听的端口号
    hosts allow = 192.168.202.0/24    #允许哪些客户端能够连接服务
    max connections = 0    #指定该服务的最大并发连接数,为0表示不限制
    timeout= 300    #指定超时时间
     
    pid file /var/run/rsyncd.pid    #pid文件路径
    lock file /var/run/rsync.lock    #锁文件路径
    log file /var/log/rsyncd.log    #日志文件路径
     
    [backup]    #模块声明
    path =/rsync/test    #指定当前模块在rsync服务器上的同步路径,该参数是必须指定的
    read only = no    #是否允许客户端上传文件
    list = no    #当客户请求列出可以使用的模块列表时,该模块是否应该被列出
    auth users rsync    #指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块
    secrets file /etc/rsync.passwd    #保存密码和用户名文件,需要自己生成

    设置密码文件:

    vim /etc/rsync.passwd    #添加以下内容
     
    rsync:123456
     
    chmod 600 /etc/rsync.passwd    #修改密码文件权限为600

    注:当配置文件中参数strict modes为true时,rsync认证口令文件的权限一定是600,否则客户端将不能连接服务器。rsync认证口令文件中每一行指定一个 用户名:口令 对,格式为:username:passwd。

    启动rsync服务并设置开机自启动:

    /usr/bin/rsync --daemon    #以守护进程方式启动rsync服务
    echo "/usr/bin/rsync --daemon">>/etc/rc.local    #添加开机自启动

    3.rsync客户端安装与配置

    安装inotify-tools:

        在安装inotify-tools前请先确认你的linux内核是否达到了2.6.13,并且在编译时开启了CONFIG_INOTIFY选项,也可以通过以下命令检测,如果出现以下输出,说明支持:

    [root@localhost ~]# ls /proc/sys/fs/inotify/
    max_queued_events  max_user_instances  max_user_watches

        安装:

    wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz 
    tar xvf inotify-tools-3.14.tar.gz  
    cd inotify-tools-3.14  
    ./configure  
    make;make install

    编写rsync.sh监控脚本:

    #!/bin/bash
    host=192.168.202.135
    src=/data/www/
    des=backup
    user=rsync
     
    /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format  '%T %w%f' \
     -e modify,delete,create,attrib \
    ${src} \
    while read  file
            do
                    rsync -vzrtopg --delete --progress ${src} ${user}@${host}::${des} --password-file=/etc/www.pwd &&
                    echo "${files} was rsynced" >> /tmp/rsync.log 2>&1
                    echo "---------------------------------------------------------------------------"
            done

    建立认证文件(客户端认证文件只用加入密码即可)并后台运行rsync.sh脚本:

    echo 'rsync' >> /etc/www.pwd
    chmod 600 /etc/ww.pwd
    nohup sh /root/rsync.sh &  
    echo "nohup sh /root/rsync.sh &" >> /etc/rc.local

    参考资料:

    rsync服务器的安装与配置:http://www.cnblogs.com/mchina/p/2829944.html

    rsync+inotify实现文件批量更新:http://kerry.blog.51cto.com/172631/734087/

    rsync+inotify实现数据实时备份:

    http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=11840697&id=3890795