我正在尝试获取一个 shell 脚本来识别应用程序实例何时出现。这样它就可以继续发出命令。
我一直在想它会是这样的:
#/bin/bash
startApp.sh
while [ `tail -f server.log` -ne 'regex line indicating success' ]
do
sleep 5
done
echo "App up"
但是,即使这有效,它也不会解决一些问题:
- 如果应用程序没有出现怎么办,它会等待多长时间
- 如果启动应用程序时出现错误怎么办
- 如何捕获日志行并回显它
我很接近,还是有更好的方法?我想这是其他管理员必须克服的问题。
编辑:
我在超级用户上找到了这个
https://superuser.com/questions/270529/monitoring-a-file-until-a-string-is-found
tail -f logfile.log | while read LOGLINE
do
[[ "${LOGLINE}" == *"Server Started"* ]] && pkill -P $$ tail
done
我唯一的问题是它可能永远不会退出。有没有办法增加最长时间?