MultiTail是个用来实现同时监控多个文档、类似tail命令的功能的软件。他和tail的区别就是他会在控制台中打开多个窗口,这样使同时监控多个日志文档成为可能。本文将讲述MultiTail的应用技巧。
基本应用
使用MultiTail的命令是“multitail [-i] file”。MultiTail将会在终端中显示文档内容,在屏幕底部会显示被打开文档的文档名、大小和最新修改时间。用户能够使用“-d”参数确保该状态行保持不变,或使用“-D”来关闭该状态行。假如要指定多个文档,则命令如下:
各个窗口都具备状态条。初始启动MultiTail时,各个窗口是上下排列,能够使用“v”命令来修改排列模式。
滚动文档
通过“b”命令用户能够在被打开的文档中进行滚动。假如MultiTail打开多个窗口时,“b”命令将首先打开一个文档选择器。在选择好要查看的文档以后,MultiTail将会再次打开一个缓冲窗口,显示要滚动查看的文档内容。用户能够使用键盘的上下箭头来查看文档内容,使用“x”或“q”来退出缓冲窗口。缓冲窗口只能显示文档最后100行内容,而不是整个文档。用户能够使用“m”命令来修改该限制。在用户输入“m”以后,MultiTail会提示输入新的缓冲值,例如1000。当然也能够在启动时使用“-m value”命令来配置缓冲大小,但是他只对仅跟该参数的文档起作用,而使用“-M value”能够对后面指定的任何文档配置缓冲大小。
合并文档内容
MultiTail有一个“-I”参数。他会合并两个或更多的文档内容。举例如下:
这个示例将合并两个文档的输出到同一个窗口中。这很有用,例如用户希望查看Apache出现错误之前发生了什么事情,这样能够同时查看访问日志和错误日志的输出了。
查看外部程式的输出
MultiTail不但能够监控文档内容,而且还能够在一个或多个窗口中查看其他程式的输出,例如脚本、程式等。为了查看外部程式输出,需要使用“-l”参数。下面举两个例子:
当外部命令有自己的参数时,则需要使用双引号把外部命令包起来,以和multitail的参数相区别。在第一个示例中,外部命令“ls”运行完毕以后MultiTail会自动关闭窗口。使用“-z”参数使MultiTail在外部程式结束以后,不弹出外部程式结束通知消息窗口,而是直接进入命令选单。和“-I file”类似,“-L command”参数同样会将外部程式的输出和其他文档或命令的输出合并。
添加颜色
为方便用户查看文档,MultiTail能够彩色显示被监控的文档内容。以“-c”启动MultiTail,MultiTail将会以彩色显示“-c”后面所跟的文档。假如用户希望在日志中查看某个特定程式的输出内容,则能够选用“-cs”参数。“-cS colorscheme”参数则是指定使用哪种配色方案。配色方案是在multitail.conf文档中指定。默认情况下multitail.conf保存在/etc目录下。在MultiTail中用户能够使用规则表达式来定义配色方案,也能够使用“-z”指定其他配置文档。示例如下: colorscheme:postfix cs_re:yellow:status=sent cs_re:magenta:queue active
第一行指定这是postfix文档的配色方案。“cs_re”表示该行定义了规则表达式和对应的颜色。“cs_re:yellow:status=sent”表示当MultiTail碰到文本“status=sent”时,就以黄色显示该内容;“cs_re:magenta:queue active”则表示当碰到文本“queue active”时,就以紫红色来显示。
过滤文档
MultiTail还提供使用正则表达式来过滤文档内容的功能。为了确保兼容性,他使用了和“grep”命令类似的参数,以方便用户使用。“-e”参数后指定一个正则表达式,“-v”表示反选,举例如下:
第一个示例表示MultiTail仅仅显示/var/log/messages中包含“gnu- pop3d”字串的行;第二个示例表示仅仅显示不包含“ssh”和“gnu-pop3d”,但是包含“localhost”的行。