我想拥有 /var/log/apache2/access.log 的实时副本,以便我可以 grep、进行主机名解析等。
最好的方法是什么?
我很好奇正在经过什么样的交通
你可以:
使用tail -f,但您必须确保以下命令没有缓冲才能立即读取事件
tail -f /var/log/apache2/access.log | grep --line-buffered "something"
或者
tail -f /var/log/apache2/access.log | sed -une "/something/p"
使用tail -f | grep
perl 或 python(perl 是在日志文件中进行 grepping 的不错选择)。
(此示例是从 man perlfaq5 复制的:
for (;;) {
for ($curpos = tell(GWFILE); <GWFILE>; $curpos = tell(GWFILE)) {
# search for some stuff and put it into files
}
# sleep for a while
seek(GWFILE, $curpos, 0); # seek to where we had been
}
做这个:
#Customize as appropriate:
tail -f /var/log/apache2/access.log | cut -f 0 -d ' ' &
tail -f /var/log/apache2/access.log | grep foo &