【问题标题】:Linux command to run a shell script upon receipt of any inputLinux 命令在收到任何输入后运行 shell 脚本
【发布时间】:2019-04-30 22:38:55
【问题描述】:

我需要监视stderr 是否有某个错误消息,当检测到它时,运行一个shell 脚本。

当前的想法是将stderr 传送到grep,并过滤消息。我会将grep 的输出传送到某个程序,该程序将在收到任何 用户输入后运行我的脚本。

或者,如果我可以让grep 输出一个特定的命令行选项参数,我大概可以将它直接通过管道传输到我的 shell 脚本。

有没有更好的方法来做到这一点?

【问题讨论】:

  • 一旦检测到错误消息,输出生成命令会发生什么?该命令应该停止吗?它应该继续运行吗?如果是这样,如果第二次检测到错误消息会发生什么?
  • shell脚本重启输出生成命令

标签: linux bash grep stderr


【解决方案1】:

我想推荐 inotifywait。

  • 监控 stderr-log.txt 的变化。
  • 读取文件并 grep 标准错误消息。
  • 如果发现错误消息,则调用另一个脚本

    while:;do inotifywait -q -e modify ./stderr-log.txt > /dev/null if cat stderr-log.txt | grep -q <error message>; then <do something here..> fi done

【讨论】:

  • 谢谢,但我在任何地方都找不到stderr-log.txt。我是否错过了将stderr 重定向到此文件的步骤?
  • 您好,stderr-log.txt 是一个示例,将其更改为您要监控的文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
  • 2013-06-10
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多