Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk tail-F的替代方案_Awk_Tail_Shell_Nawk - Fatal编程技术网

Awk tail-F的替代方案

Awk tail-F的替代方案,awk,tail,shell,nawk,Awk,Tail,Shell,Nawk,我通过执行“TAIL-n-0-F filename”来监视日志文件。但这占用了大量CPU,因为有许多消息正在写入日志文件。有没有办法,我可以打开一个文件,读取新的/很少的条目,然后关闭它,每隔5秒重复一次?这样我就不需要继续跟踪文件了?在下一次运行中,我如何记住从下一行开始的最后一个读取行?我试图在nawk中通过生成tail shell cmd来实现这一点。通过编写自己的实现,您将无法神奇地使用更少的资源来跟踪文件。如果tail-f正在使用资源,因为文件正在快速增长,那么如果您仍然希望在编写时查

我通过执行“TAIL-n-0-F filename”来监视日志文件。但这占用了大量CPU,因为有许多消息正在写入日志文件。有没有办法,我可以打开一个文件,读取新的/很少的条目,然后关闭它,每隔5秒重复一次?这样我就不需要继续跟踪文件了?在下一次运行中,我如何记住从下一行开始的最后一个读取行?我试图在nawk中通过生成tail shell cmd来实现这一点。

通过编写自己的实现,您将无法神奇地使用更少的资源来跟踪文件。如果tail-f正在使用资源,因为文件正在快速增长,那么如果您仍然希望在编写时查看所有行,那么定制版本将毫无帮助。您仅仅受到硬件I/O和/或CPU的限制。

尝试使用
--sleep interval=S
,其中“S”是秒数(默认值为1.0-您可以指定小数)


如果您有如此多的日志条目,以至于
tail
使CPU陷入困境,那么您如何能够监视它们呢?

您所描述的正是tail-f在内部所做的事情,唯一不同的是您所说的使用更长的延迟时间。如果您仍然需要查看所有线路,硬件将限制您。
tail -n 0 --sleep-interval=.5 -F filename