bash - 脚本 bash 始终是一个日志文件,当匹配特定单词时,发送邮件
问题描述
我已经搜索了所有线程,但我不知道如何解决我非常简单的问题..
我认为这很简单,但我不是 bash 专家..
我需要一个在日志文件中执行连续尾部的 bash 脚本,当 grep “失败”一词时,执行另一个命令并向我发送邮件(但尾部命令不能停止)
我想我需要一个“for loop”或“while read”或“if then else”命令。我尝试了不同的方法,但找不到工作脚本..
非常感谢您的帮助!
解决方案
最有可能的是,使用标准 Linux 实用程序更简单、更好,而不是使用 bash 实现此功能:
tail -f log-file | stdbuf -oL grep fail | xargs -L1 send-mail-alert
你已经发现你需要tail/grep。你需要两个额外的成分:stdbuf 和 xargs
stdbuf 将强制“行缓冲”,导致“失败”消息发送到“xargs”程序而没有(缓冲)延迟。
'xargs' 命令将在每次出现'fail' 时激活脚本'send-mail-alert'。您可以内联邮件传递,并使用脚本
推荐阅读
- java - 从另一个类调用函数
- python - 多层感知器在具有 1 个输出神经元时精度较低,在具有更多输出神经元时工作正常
- javascript - 保存因为在华为手机浏览器不工作,Chrome&Safari都可以
- python - 使用 sklearn 聚类分类器
- vue.js - 将主题颜色暴露给 vuetify 中的 css 变量不起作用
- python-3.x - 我不能用 Python3 对句子进行二元化
- apache-kafka - 消息消费者的Kafka相同消费者组以及流拓扑
- java - 无法识别的字段类未标记为可忽略
- javascript - 编辑链接 javascript:open
- flutter - Dart:如何查找两个日期之间的天数,不包括周末或谓词