Linux中实时查看日志文件的工具-cnaaa.com - 蜻蜓墓园

Linux中实时查看日志文件的工具-cnaaa.com

  最近我在cnaaa.com购买了一台云服务器。

  我们都应该知道如何在Linux中查看文件,例如可以使用cat或less命令

  这对于查看静态文件来说很好。 日志文件是动态的,其内容可以随时更改。 要监视日志文件,您需要能够实时查看日志文件内容何时发生变化。

  那么如何实时查看日志文件呢? tail 命令可用。 此外,还有其他工具。 本文将介绍这些可以实时查看日志文件的工具。

  1、使用tail命令查看日志文件

  tail 命令的使用非常广泛,以至于系统管理员经常使用口头禅 tail the log file(即:tail the log file)。

  大多数情况下,tail命令用于查看文件末尾的内容,因此得名tail。

  使用 -f 选项跟踪文件末尾的内容,这意味着它将继续显示新添加到文件中的内容。

  tail -f location_of_log_file

  要停止跟踪日志文件,请使用 ctrl +c 快捷方式。

  尾部和 grep

  上面提到了tail命令可以实时查看文件内容的变化。 但当文件内容更新很快时,新更新的内容就会一闪而过。 在这种情况下,查看起来就不那么方便了。

  例如,当我们跟踪日志文件时,我们经常监视某个特定的术语(字符串),这在大量快速更新的内容中跟踪起来非常不方便。

  为了解决这个问题,我们可以结合tail和grep命令。 如下:

  tail -f log_file | grep search_term

  这样看起来好多了,对吧? 在此基础上,让我们进行一些改进。

  使用grep显示搜索词,显示的信息比较有限。 它只显示搜索结果,所以我们经常使用-C选项来显示搜索结果的前几行和最后几行:

  tail -f log_file | grep -C 3 search_term

  这样我们就可以看到与检索结果相关的前后行信息,并且可以更好地跟踪日志信息。

  还想进一步改进吗? 您可以使用 grep 搜索多个搜索词,然后不区分大小写:

  tail -f log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

  使用日志轮转跟踪日志

  在大多数企业服务器上,日志是轮换的,即当日志文件达到一定大小时,它们会被重命名和压缩。

  如果实时跟踪日志文件,这可能会导致问题。 默认情况下,tail 命令作用于文件描述符。 如果当前日志文件被轮换,则 tail 命令现在将指向存档日志文件,该文件现在不会记录任何更改。

  解决方案是通过名称跟踪日志文件。 这样,即使发生日志轮换,尾部也会指向当前日志文件(因为它的名称永远不会改变)。

  tail --follow=name log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

  tail 非常适合实时监控日志文件,但是上述方法只能监控一个日志文件。 如果你想监控多个日志文件怎么办? 请参阅下一节。

  使用tail查看多个日志文件

  在Linux系统中工作,可以使用tail命令同时监控多个日志文件。 您只需要提供文件的路径:

  tail -f log_file_1 -f log_file_2

  通过上面的命令,你会实时看到日志文件的更新,并且前面会显示文件名以区分不同的日志文件:

  除了上面的方法之外,还有一个更方便的方法,那就是使用一个叫做multitail的工具。

  2.使用multitail同时监控多个日志文件

  顾名思义,multitail 用于同时显示多个文件。

  既然tail可以同时监控多个文件,那么multitail有什么特别之处呢?

  multitail的美妙之处在于它可以分屏显示文件,甚至可以在不同的行和列中显示不同的文件。

  tail 在同一个视图中显示所有内容,因此有时很难跟踪,multitail 通过提供类似于 screen 命令的分割视图来克服这个困难。

  请注意,大多数 Linux 系统上默认情况下并未安装 multitail,因此您需要在使用前手动安装它。

  在后面跟文件路径的multitail命令中,最好一次不要超过3个,因为如果超过3个或更多,就会更难追踪。

  multitail log_file_1 log_file_2

  默认情况下,multitail的工作方式与tail -f相同,它显示进入实时监控视图之前的最后100行; 此外,它还按线分割视图。

  您可以按 b 键打开文件选择窗口并选择要查看的日志文件以进行进一步分析。

  要分割视图,请使用 -s 选项,后跟数字,即视图数:

  multitail -s 2 log_file_1 log_file_2

  按 q 键退出多尾的所有视图。

  多尾可以做更多事情。 如果您有兴趣,可以查看其官方文档。 本文不再继续介绍。

  3.使用less命令实时查看日志文件

  less命令多用于读取文本文件,也可以用于读取实时变化的文件。

  Option+F 可以实时跟踪文件更改:

  less +F log_file

  上述命令打开日志文件并实时显示正在写入的更改:

  按 ctrl +c 中断显示,按 q 退出视图。

  与 tail 命令不同,此方法允许我们快速查看日志的更改,而不会使屏幕混乱。

  上述监控日志的方法适用于传统的基于文本的日志文件。 对于系统日志,可以使用syslogs,但是现在很多Linux发行版都开始使用journal log来查看和分析日志,所以需要使用journalctl命令。

评论区
头像