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

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

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

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

cat logfile.txt | grep -v "IgnoreThis\|IgnoreThat" | less

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

我希望有某种方式可以在阅读日志时应用过滤器,并且有一种方法可以将这些过滤器保存在某处。

有没有工具可以帮我做这个?我无法安装新软件,所以希望它是已经安装好的软件 - 例如,less、vi、Python 或 Perl 库中的某些软件等。

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

答案1

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

答案2

你肯定不会安装这个,但如果这是你必须定期做的事情,那么可能值得研究一下Splunk。Splunk 可以索引此类大型数据集,帮助您找到所需内容。

相关内容