我有几个日志文件(与我的网络服务器相关,又名各种 error_log、access_log 等),我想实时监控它们,即查看最近的更新,并且我需要使用不同的字符串或不进行任何过滤来单独过滤每个文件。
假设我有一组日志文件:file1.log
file2.log
file3.log
file4.log
file5.log
file1.log
file2.log
file3.log
我需要通过一些表示路径或用户名的一部分的字符串来过滤string
前三个文件。
最后两个文件file4.log
file5.log
我需要在没有任何过滤的情况下查看,即按原样查看它们的更新。
我的知识是,我可以使用tail -f file1.log file2.log file3.log | grep string
它为我提供由分隔符分隔的所有三个文件的所需输出==> fileX <==
。我对最后两个文件使用的方法相同tail -f file4.log file5.log
。这给了我我需要的东西,但这些是单独的命令。
但我不知道如何将这两个命令组合在一起以在终端中获得一个实时输出。
我尝试执行用分号;
或&&
等分隔的两个命令,但这没有按预期工作。
我的问题是如何tail -f
使用 tail -f 文件分隔符的高级过滤将多个命令组合成单个输出==> fileX <==
?
备份问题是否还有其他方法可以处理日志文件更改的实时视图的类似结果?
我认为您正在寻找像以下这样简单的东西:
我通过启动此脚本对此进行了测试:
正如您所看到的,该脚本将打印出
fileN
后跟 的输出date
,然后unwanted
每 3 秒在新行上打印该字符串到 5 个日志文件中的每一个中。然后我运行上面的命令并得到以下输出: