zoukankan      html  css  js  c++  java
  • rsync+inotfiy文件同步

                                      rsync+inotfiy文件同步

    1.部署rsync服务

    yum install rsync  #安装rsync,如果嫌yum版本过低也可以源码安装

    2.vim /etc/rsyncd.conf #默认rsync没有配置文件,创建一个,文件中#和汉字仅为注释,使用中请将所有注释清除

    #Rsync server
    uid = root
    gid = root
    use chroot = no                         # 安全相关
    max connections = 2000                  # 并发连接数
    timeout = 600                           # 超时时间(秒)
    pid file =/var/run/rsyncd.pid           # 指定rsync的pid目录
    lock file =/var/run/rsync.lock          # 指定rsync的锁文件【重要】
    log file = /var/log/rsyncd.log          # 指定rsync的日志目录
    ignore errors                             #忽略一些I/O错误
    read only = false                       #设置rsync服务端文件为读写权限
    list = false                            #不显示rsync服务端资源列表
    hosts allow = 10.1.0.0/16               #允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
    hosts deny = 0.0.0.0/32                 #禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
    auth users = rsync_backup               #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开
    secrets file =/etc/rsync.password       #用户认证配置文件,里面保存用户名称和密码
    #################################################
    [www]                                   # 模块 
    comment = www 
    path = /data/www/
    #################################################
    [bbs]
    comment = bbs
    path = /data/bbs/
    #################################################
    [blog]
    comment = blog
    path = /data/blog/
    #rsync_config____________end
    
    :wq!  #保存,退出

    3、创建用户认证文件

    echo  "rsync_backup:123456">/etc/rsync.password  #配置密码文件

    4、设置文件权限

    chmod 600 /etc/rsync.password  

    5.启动守护进程,并写入开机自启动

    rsync --daemon
    vim /etc/rc.local
    # rsync server progress
    /usr/bin/rsync --daemon

    6.创建相关待同步的目录

    mkdir -p /data/{www,bbs,blog}

     

    #rsync客户端配置

    1.安装rsync,方法同上
    2.创建rsync配置文件,客户端创建即可,无需内容

    touch  /etc/rsyncd.conf 
    3.配置rsync客户端相关权限认证:

     echo "123456">/etc/rsync.password
     chmod 600 /etc/rsync.password 
    4.创建待同步数据,在客户端创建一些数据

    mkdir -p /data/{www,bbs,blog}
    touch /data/www/www.log /data/bbs/bbs.log  /data/blog/blog.log
    5.测试rsync是否同步
    rsync  -avzP /data/www/ rsync_backup@172.16.1.25::www/   --password-file=/etc/rsync.password
    #此步骤必须成功才能进行下一步
    yum install inotify-tools #安装inotify
    echo 50000000 > /proc/sys/fs/inotify/max_user_watches
    echo 327679 > /proc/sys/fs/inotify/max_queued_events
    6.编写inotify脚本
    vim rsync.sh
    [root@lb02 www]# vim /root/rsync.sh 
    
    #!/bin/bash 
    srcdir='/data/www/'
    dstdir='www'
    dstip="10.1.1.250"
    user=rsync_backup
    /usr/bin/inotifywait   -mrq  --timefmt '%d/%m/%t %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,move $srcdir | while read file
    do
        for ip in $dstip
            do
                cd $srcdir
                rsync  -avzP --progress --delete $srcdir  $user@$dstip::$dstdir   --password-file=/etc/rsync.password
                echo " $file " >> /tmp/rsyncd.log 2>&1
            done
    done
    chmod +x rsync.sh
    ./rsync.sh #启动inotify
     

    几种同步方法:

    Rsync –anH 本地目录 远程IP:具体目录(回车之后提示输入root密码,相当于拷贝)
    例如:
    Rsync –avH /usr/local/src 192.168.0.2:/bak/test/  -》把src整个目录拷到test内
    Rsync –avH /usr/local/src/ 192.168.0.2:/bak/test/  ->把src目录内的所有文件拷贝到test内
    Rsync –anH 远程IP:具体目录  本地目录—>远程同步到本地,需要root密码
    Rsync –anH rsync用户@IP::模块 本地目录  -->从服务器模块同步到本地目录
    注:配置常见问题及解决办法:http://blog.chinaunix.net/uid-26569333-id-3067813.html

  • 相关阅读:
    jQuery基础
    前端武器库之DOM练习
    前端逼死强迫症之DOM
    前端武器库系列之html后台管理页面布局
    前端逼死强迫症系列之javascript续集
    初识elasticsearch_2(查询和整合springboot)
    初识elasticsearch_1(基本概念和基本操作)
    springboot整合redis(注解形式)
    springsecurity实战
    浅谈JavaSript中的this
  • 原文地址:https://www.cnblogs.com/panwenbin-logs/p/7742230.html
Copyright © 2011-2022 走看看