一尘不染

Shell函数在特定时间尾随特定字符串的日志文件

linux

我需要执行以下操作以确保我的应用服务器是

  1. 尾随日志文件中的特定字符串
  2. 保持阻塞,直到打印出该字符串
  3. 但是,如果在大约20分钟内未打印字符串,则退出并抛出异常消息,例如“服务器花费了20分钟以上的时间”
  4. 如果在日志文件中打印了字符串,请退出循环并继续。

有没有办法在while循环中包括超时?


阅读 219

收藏
2020-06-07

共1个答案

一尘不染

#!/bin/bash
tail -f logfile | grep 'certain_word' | read -t 1200 dummy_var
[ $? -eq 0 ]  && echo 'ok'  || echo 'server not up'

这将读取写入日志文件的所有内容,搜索some_word,如果一切正常,则回显ok,否则在等待1200秒(20分钟)后抱怨。

2020-06-07