Tail
tail -fa 文件 10 分鐘/直到 N 個匹配行?
我有一個日誌文件,我按如下方式處理:
grep pattern /var/log/whatever.log | \ cut ... | sort | uniq -c | sort -rn | \ etc....
但是,日誌文件很大,並且記錄了從一天開始的事件。它也不斷地附加。我只想處理
最後的接下來 10 分鐘的文件。所以我正在尋找類似以下的東西:
killafter 600 tail -f /var/log/whatever.log | stuff
或者,更好的是(等待擷取 1000 條匹配行所需的時間):
tail -f /var/log/whatever.log | grep pattern | stopafter -lines 1000 | stuff
有什麼工具可以讓我這樣做嗎?
roaima 正確地將您指向
timeout
命令,並head
在讀取所需的行數後實際終止,所以我希望timeout 600s tail -f ‹logfile› | ‹filter› | head -n 1000
你會到達那裡。
預設情況下,超時會終止程序並且管道會被終止。
timeout --foreground 600s tail -n 0 -f logfile | ...filter | head -n 1000| ...
timeout --foreground
否則我們只會看到“終止”tail -n 0 -f
只顯示新的日誌head -n 1000
“在 1000 行後停止”\謝謝{roaima 和 Ulrich Schwarz}