• rsync+inotify


    一、rsync

    1.1rsync是啥

     相当于cp、scp、rm等工具,但优于这些工具,主要用在数据备份

     

    1.2、rsync安装

    yum -y install rsync
    --update 客户端删除文件 ,服务端不会删除,如果客户端再创建同名文件 ,会覆盖服务端文件

    1.3、Rsync 服务器端配置修改

      vi  /etc/rsyncd.conf

    如下注释要删掉,不然 不能用。。
    ##rsyncd.conf start##
    uid = rsync   ##进程对应的用户,是虚拟用户。远端的命令使用rsync访问共享目录
    gid = rsync   ##进程对应的用户组。
    use chroot = no    ##安全相关
    max connections = 200      ##最大连接数
    timeout = 300    ##超时时间
    pid file = /var/run/rsyncd.pid      ##进程对应的进程号文件
    lock file = /var/run/rsyncd.lock     ##锁文件
    log file = /var/log/rsyncd.log        ##日志文件
    [bk]     ###模块名称,对应客户端 rsync -avz /tmp/ rsync_backup@47.106.130.253::bk
    path = /backup      ###服务器提供访问的目录
    ignore errors       ##忽略错误
    read only = false    ##可写
    list = false      ##不能列表
    hosts allow = 172.16.1.0/24  ##允许的ip地址
    ##hosts deny = 0.0.0.0/32
    auth users = rsync_backup     ##虚拟用户
    secrets file = /etc/rsync.password    ###虚拟密码

    参考:https://blog.csdn.net/qq_41816540/article/details/80611757

    #创建用户
        useradd rsync -s /sbin/nologin -M
    #创建目录
        mkdir  /backup
        chown -R rsync.rsync /backup/
    #创建密码
        echo "rsync_backup:123456" >>/etc/rsync.password
        chmod 600 /etc/rsync.password
    #启动服务
        rsync --daemon 
        ps  -ef |grep rsync|grep -v grep ##查看进程有没有启动
        netstat  -lntup|grep rsync
    #加入开机启动
        systemctl enable rsyncd.service

    1.4、启动rsync服务端

    #centos7启动
    systemctl start rsyncd.service

    1.5、rsync客户端命令

      推拉都是客户端操作

      

    ·  

    rsync中的-delete参数是指“ 删除那些DST中SRC没有的文件”

    #创建客户端密码文件
    echo "oldboy" >>/etc/rsync.password
    chmod 600 /etc/rsync.password
    rsync -avz /tmp/ rsync_backup@47.106.130.253::bk --password-file=/etc/rsync.password
    #排除某个文件
    rsync -avz --exclude=a /tmp/ rsync_backup@47.106.130.253::bk --password-file=/etc/rsync.password

    #排除多个文件

    rsync -avz --exclude={a,b} /tmp/ rsync_backup@47.106.130.253::bk --password-file=/etc/rsync.password

    二、Inotify

    2.1、Inotify是啥

      实时监控文件变化,最多支持200-300并发

    2.2、查看是否支持

    ls -l /proc/sys/fs/inotify

    2.3安装Inotify

    wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
    tar xzvf inotify-tools-3.14.tar.gz
    cd inotify-tools-3.14
    ./configure --prefix=/usr/local/inotify-tools
    make
    make install

    2.4、Inotify命令

    /usr/local/inotify-tools/bin/inotifywait -mrq  --format '%d/%m/%y %H:%M' -c create,delete,close_write /data 
    -r recursive递归
    -q quiet打印好少信息
    -m monitor始终保持监听
    --format 监控到的文件格式

    2.5、脚本实时同步

     2.6优化

    关键参数说明:
    在/proc/sys/fs/inotify目录下有三个文件,对inotify机制有一定限制
    max_user_watches:设置inotifywait或inotifywatch命令可以监视的文件数量(单进程)
    max_user_instances:设置每个用户可以运行的inotifywait或inotifywatch命令的进程数
    max_queued_events:设置inotify实例事件(event)队列可容纳的事件数量
    echo "50000000"> /proc/sys/fs/inotify/max_user_watches
    echo "50000000"> /proc/sys/fs/inotify/max_queued_events

    Inotify安装报错

    报错 libinotifytools.so.0: cannot open shared object file
    32位系统:ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib/libinotifytools.so.0
    64位系统:ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0

  • 相关阅读:
    [编程题]多多的数字组合
    mac传输文件到服务器
    git 清除缓存、查看add内容
    go build
    vim编辑器
    Git: clone指定分支
    查看端口占用以及kill
    curl小记录
    Python3.9 malloc error: can’t allocate region
    设计模式-策略模式
  • 原文地址:https://www.cnblogs.com/kevincaptain/p/10384549.html
Copyright © 2020-2023  润新知