如何在 Linux 中查看日志文件并在查看时应用自定义文件管理器?

Dan*_*Dan 7 linux log-files filtering

(我在stackoverflow上问了这个问题,但在这里可能会更好......)

我需要在 Linux 系统上通读一些巨大的日志文件。日志中有很多杂乱的东西。目前我正在做这样的事情:

cat logfile.txt | grep -v "IgnoreThis\|IgnoreThat" | less
Run Code Online (Sandbox Code Playgroud)

但它很麻烦——每次我想添加另一个过滤器时,我都需要退出less并编辑命令行。有些过滤器比较复杂,可能是多线的。

我想要在阅读日志时应用过滤器的某种方法,以及将这些过滤器保存在某处的方法。

有没有工具可以为我做到这一点?我无法安装新软件,所以希望它是已经安装的东西——例如,less、vi、Python 或 Perl 库中的东西等。

更改生成日志的代码以生成更少的代码不是一种选择。

nik*_*nik 2

  1. 读取大型日志文件不是一个好主意
    • 您需要首先将它们过滤到必要的行,然后查看它们
    • 即使这样,如果可能的话(如果过滤的行也很多),
      您应该运行辅助过滤器和计数脚本来分析它们
  2. 当您有一个大型静态文件并且知道过滤器可以消除其中的行时,
    存储过滤后的输出(而不是尝试立即查看它)始终是一个好主意。
    • 通过这种方式,您可以对过滤后的输出运行二级过滤器,并且不需要再次对整个过滤器运行
    • 因此,在您的示例中,将第一个输出存储到一个新文件中,当您知道另一个过滤器时,将其应用于该存储的文件
    • 当然,这意味着过滤后的文件需要一些存储空间。
      如果您的过滤器能够大量减少实际文件,效果会更好
  3. 常规的 Linux 工具如“ grep”、'sed“”、“ AWK”通常足以很好地处理文本日志文件。
    我经常用这些东西处理 10GB 左右的日志文件。
    你可以用‘’里的这些东西制作你自己的工具bash scripts
  4. 不要小看' vim',它也可以处理大文件(但需要时间,所以给它过滤文件)