Run tail -f for a specific time in bash script

徘徊边缘 提交于 2019-12-07 09:44:14

问题


I need a script that will run a series of tail -f commands and output them into a file. What I need is for tail -f to run for a certain amount of time to grep specific words. The reason it's a certain amount of time is because some of these values don't show up right away as this is a live log.

How can I run something like this for let's say 20 seconds, output the grep command and then continue on to the next command?

tail -f /example/logs/auditlog | grep test

Thanks


回答1:


timeout 20 tail -f /example/logs/auditlog | grep test



回答2:


tail -f /example/logs/auditlog | grep test &
pid=$!
sleep 20
kill $pid



回答3:


What about this:

for (( N=0; $N < 20 ; N++)) ; do tail -f /example/logs/auditlog | grep test ; sleep 1 ; done

EDIT: I misread your question, sorry. You want something like this:

tail -f /example/logs/auditlog | grep test
sleep 20


来源:https://stackoverflow.com/questions/16368382/run-tail-f-for-a-specific-time-in-bash-script

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!