2015-05-18 32 views
1

我寫了一個程序來實時分析日誌文件。我需要用IP來提供它。它工作正常使用命令:管道連續流到另一個命令

cat /var/log/apache2/access.log | awk '{print $1}' | ./my_program 

另外,我可以實時獲取的IP地址用命令:

tail -f /var/log/apache2/access.log | awk '{print $1}' 

當我管到我的計劃,我的計劃沒有收到任何東西:

tail -f /var/log/apache2/access.log | awk '{print $1}' | ./my_program 

這似乎是緩衝的問題。是否有連續流向我的程序的方式?

+1

如果緩衝完成'awk'那麼你可以把行緩衝。你可以試試'tail -f /var/log/apache2/access.log | awk -W interactive'{print $ 1}'| 。/ my_program'看到它的作品? –

回答

0

我發現了緩衝問題的最終解決方案here

的問題是,標準輸入輸出正在緩衝......