zoukankan      html  css  js  c++  java
  • 如何使用 lsyncd 实时同步并执行 shell 命令

    修改 lsyncd 的默认配置,不直接执行rsync 进行同步,而是改用自己的脚本。
    binary 指定我们的脚本

    vim /usr/local/lsyncd/etc/lsyncd.conf

    settings  {
       logfile = "/usr/local/lsyncd/logs/lsyncd.log",
       statusFile = "/usr/local/lsyncd/logs/lsyncd.status",
       maxDelays = 100,
       statusInterval = 5,
       delay = 5,
       exitcodes = {[0] = "ok", [1] = "again", [2] = "die"}
    
       }
    sync {
        default.rsync,
        source    = "/data/logs/nginx",
        target    = "sync_user@192.168.31.140::sync_test",
        exclude   = { ".*", "*.tmp", "*.bak" , "*.pid"},
        delete    = true,
        rsync     = {
            binary = "/data/sh/mysync.sh",
            compress = false,
            archive  = true,
            verbose  = false,
            timeout  = 3600,
            password_file = "/usr/local/lsyncd/etc/rsync.pass"
        }
    }
    
    编写自己的脚本

    vim /data/sh/mysync.sh

    #!/bin/bash
    /usr/bin/rsync "$@"
    result=$?
    args="$@"
    (
      if [ $result -eq 0 ]; then
         echo "argument:$args" >> /tmp/lsync_test.txt
      fi
    ) >/dev/null 2>/dev/null </dev/null
    
    exit $result
    
    lsyncd 会调用 /data/sh/mysync.sh 脚本触发 rsync 同步,并执行脚本后续的命令。
  • 相关阅读:
    Linux链接库一(动态库,静态库,库放在什么路径下)
    scp指令的学习
    注册表语法
    汇编指令
    PS7.0快捷键和使用技巧
    Lrc歌词-开发标准
    VBS 创建快捷方式
    LDAP属性对照表
    按键精灵对VBS的支持
    英寸、磅等单位的换算
  • 原文地址:https://www.cnblogs.com/wshenjin/p/7324376.html
Copyright © 2011-2022 走看看