【问题标题】:AIX Continuous Log MonitoringAIX 连续日志监控
【发布时间】:2014-11-30 07:54:49
【问题描述】:

我有一个简单的要求,即持续监控日志文件,当其中出现某个术语时,发送一条 JMS 消息。我使用了下面的代码 (checkScript.sh),它可以完美运行,直到午夜存档脚本启动。

string="requiredstring"
tail -n 0 -f /home/user/log.log | \
while read LINE
do
echo "$LINE" | grep -q $string
java tibjmsProducer -server tcp://localhost:7222 -user admin -password admin -queue test.queue "$LINE"
done

在午夜,有一个归档脚本启动并将 log.log 文件重命名为 log.log.1 并触及 log.log 文件。所以我们最终会得到两个文件log.loglog.log.1。由于 AIX 无法使用 tail 监视这些文件更改,因为 AIX 中的尾部仅跟踪文件描述符,因此我编写了另一个脚本,它将在归档完成后重新启动上述代码。

kill -9 `ps -ef|grep "tail -n 0 -f" | grep "checkScript"| awk '{print $2}'`
echo "Killed process. Restarting the shell script"
./checkScript.sh >> /home/user/Service.log 2>&1 &

有趣的是,它确实按预期工作。但是重新启动后,日志文件停止被监视并且没有事件被触发,但是脚本上的ps -ef 显示checkScript 正在运行尾部。

我在这里做错了吗?

谢谢!

【问题讨论】:

    标签: logging monitoring aix tail continuous


    【解决方案1】:

    我建议您不要盲目重命名,而是先cp,然后再cat /dev/null(这将保持相同的inode,并允许您的原始进程继续进行而不会中断)。另外,我建议您使用date 命令。类似的东西

    #!/bin/sh
    DT=`date "+%Y%m%d%H%M%S"`
    LF="/home/user/log.log"
    FN="$LF-$DT"
    cp "$LF" "$FN"
    cat /dev/null > "$LF"
    

    最后,你可以考虑添加(假设你有bzip2

    bzip2 -9 "$FN"
    

    【讨论】:

    • 抱歉,Elliott 给您带来了困惑。他们的做法完全相同,复制所有文件,然后 gzip+tar 压缩所有超大日志文件的文件夹。为了解决这个问题,我编写了一个脚本来重新启动我的 checkScript 文件并将其放入 crontab 中。但有趣的是,从 cron 运行时它没有按预期工作,但是当我早上手动启动时工作正常(丢失 8 小时的事务)
    • @aadi 如果最后一步是cat /dev/null > $LF(而不是rm),那么您不需要重新启动显示器。文件描述符将保持不变,但现有文件内容将被删除。
    • 谢谢艾略特。正在使用> filename.log 重置文件。我认为这相当于使用您的建议。我会检查并回复你。
    【解决方案2】:

    哈!最后,一个简单的(正确的)谷歌给出了这个愚蠢问题的解决方案。我忘了提到的是(认为没关系),我的脚本被crontab 重新启动。并且 cron 使用一组不同的环境变量运行,其中不包括 Java 目录。因此,当脚本运行时,它不会将结果推送到 JMS 服务器。

    为了解决这个问题,我修改了下面的重启脚本,它就像一个魅力!

    . ${HOME}/.profile
    kill -9 `ps -ef|grep "tail -n 0 -f" | grep "checkScript"| awk '{print $2}'`
    echo "Killed process. Restarting the shell script"
    ./checkScript.sh >> /home/user/Service.log 2>&1 &
    

    这为我加载了所有正确和必需的路径,脚本现在运行良好。 . ${HOME}/.profile 命令帮助解决了脚本中的依赖关系,从现在开始,它将用于我将编写的所有 crontab 脚本。谢谢!

    【讨论】:

    • 解决您自己的crontab 问题的一大优势!祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多