Shell函数用于在特定时间内为特定字符串尾随日志文件

pup*_*784 15 linux grep tail

我需要做以下事情以确保我的应用程序服务器

  1. 为特定字符串添加日志文件
  2. 保持阻塞状态,直到打印出该字符串
  3. 但是如果字符串没有打印大约20分钟退出并抛出异常消息,例如"服务器花了20多分钟才能启动"
  4. 如果在日志文件中打印了字符串,则退出循环并继续.

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

jim*_*ara 11

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

这会读取写入logfile的任何内容,搜索certain_word,如果一切正常则回显,否则等待1200秒(20分钟)后会抱怨.