Centos7 搭建rsync+inotify 远程数据同步

    IP:192.168.6.120 NAS备份服务器
    IP:192.168.6.100 需备份客户端

    服务端安装配置
    一、inotify-slave部署 (NAS备份服务器)
    IP:192.168.6.120 NAS备份服务器
    yum install -y rsync #安装rsync
    nano /etc/rsyncd.conf #更改配置文件

    #工作中指定用户(可以不指定为0)
    uid = 0
    gid = 0
    #相当于黑洞.出错定位
    use chroot = no
    ##有多少个客户端同时传文件
    max connections =200
    ##超时时间
    timeout = 500
    ##进程号文件
    pid ifle = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    ##日志文件
    log file = /var/log/rsyncd.log
    ##模块开始(这个模块就是待会儿对端写脚本的里面一个参数的名称)
    [bakname]
    ##需要同步的目录(准确的说是同步过来后放到哪里的目录路径)
    path = /home/www
    ##表示出现错误忽略错误
    ignore errors
    ##表示网络权限可写(本地控制真正可写)(亲测这里写false报错)
    read only = no
    ##这里设置IP或让不让同步
    list = false
    #允许的ip或者ip段
    hosts allow = 192.168.6.100
    ##拒绝,以下表示都不拒绝
    hosts deny = 0.0.0.0/32
    ##认证用户
    auth users = rsynclsl
    ##用户名和密码存放文件
    secrets file = /etc/rsync.secrets

    useradd -s /sbin/nologin rsynclsl #添加用户
    passwd rsynclsl #设置密码

    nano /etc/rsync.secrets #创建认证文件
    rsynclsl:123456

    chmod 600 /etc/rsync.secrets #设置文件权限

    iptables -I INPUT -p tcp --dport 873 -j ACCEPT #打开80端口的访问权限
    service iptables save #保存设置,不保存重启将丢失添加端口
    /etc/init.d/iptables restart #重启防火墙

    rsync --daemon --config=/etc/rsyncd.conf #启动服务
    netstat -nultp #端口查看

    客户端安装配置
    IP:192.168.6.100
    yum install -y rsync #安装rsync只安装不启动不配置
    #安装inotify
    cd
    wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
    tar zxf inotify-tools-3.14.tar.gz
    cd inotify-tools-3.14
    ./configure --prefix=/usr/local/include/
    make && make install

    nano inotify.sh

    #!/bin/bash
    #chkconfig: 345 88 14
    host=192.168.6.120 #server的ip(备份服务器)
    src=/home/www #所要监控的备份目录(此处可以自定义,但是要保证存在)
    des=bakname #自定义的模块名,需要与client端定义的一致
    password=/etc/rsync.password #密码文件
    user=rsynclsl #用户名(一个实际存在的账号)
    inotify=/usr/local/include/ #inotify的安装目录

    ${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
    rsync -avzP --delete --timeout=100 --password-file=${password} $src $user@$host::$des
    echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
    done

    chmod 755 inotify.sh

    nano /etc/rsync.password #创建认证文件只需填写密码
    123456

    chmod 600 /etc/rsync.password #设置文件权限

    ./inotify.sh #执行脚本
    rsync -avH --port=873 --delete /home/www/ rsynclsl@192.168.6.120::bakname --password-file=/etc/rsync.password #若脚本有问题测试语句

    转载请注明:RAIN MAN » Centos7 搭建rsync+inotify 远程数据同步

    喜欢 1
标签:

还没有人抢沙发呢~