这是 Ubuntu (3.13.0-29-generic #53),试图做一个简单的 bash 脚本来监控匹配行的日志文件。
如果我执行以下操作,则 bash shell 中除了匹配项之外没有输出,这是预期的:
尾-F server.log | grep --line-buffered "字" | tee -a wordwatch.log
但是,如果我尝试在屏幕上做同样的事情,会话就会被监视日志文件中不匹配的数据发送到垃圾邮件中。显然它显示了监视日志文件中的所有内容。此垃圾邮件不会出现在输出日志文件中。
screen -S "wordwatch" 尾 -F server.log | grep --line-buffered "字" | tee -a wordwatch.log
我做错了什么,如何阻止观看的日志向屏幕会话发送垃圾邮件?
当您以这种方式启动管道时:
then 仅
tail -F server.log
在内部启动screen
,其余所有都连接到screen
,而不是tail
.因此,您应该调用已经工作的 bash 脚本:
另一种方法是显式启动 shell 并将所有行传递给它:
使用屏幕观看日志的另一个好方法是特殊配置:
screen
应该这样调用:要退出只需按下
<CTRL-A><CTRL-\>
并确认。