2011-10-07 28 views
3

我想做一個bash腳本來分析日誌文件中的錯誤。 我一直在尋找一種有效的方式來獲取信息,只要他們寫。運行時分析文件的bash腳本

你能告訴我一些解決方案嗎?

比方說,我的腳本將一直運行會越來越被寫入日誌文件中的每個新行,詳情事件將產生警報或電子郵件(這不是一個問題)。

謝謝!

回答

6

使用tail -f不斷獲得新的生產線,並通過bash的read內置採取行動。

tail -f logfile | while read line; do 
     test "$line" = "nuclear meltdown" && echo "Run for your life!" 
done 
+0

你的意思是這樣的:當讀線;做do_some_with $ line;完成 Kerby82

+0

是的,我的意思是這樣的。 shell編程總是有另一種方式:-)。 – thiton

+1

好吧,我想這就像是在某個點刷新的緩存。因爲如果我使用腳本並嘗試在文件中寫入一些行,那麼在日誌中寫入5或6行後,我的腳本就可以工作,這不是一個大問題,但我想了解尾部機制工作。 – Kerby82