MultiTail - 一次浏览多个文件
概要
multitail [选项]
选项:[-cs|-Cs|-c-] [-s] [-i] 输入文件 [-i 另一个输入文件] [...]
描述
MultiTail 程序允许您像原始 tail 程序一样查看一个或多个文件。
不同之处在于,它会在控制台上创建多个窗口(使用 ncurses)。 它可以监控通配符:如果与通配符匹配的另一个文件具有更新的修改日期,它将自动切换到该文件。 这样,您可以监视整个文件目录。 可以合并 2 个或更多日志文件。 它可以还在显示日志文件时使用颜色(通过正则表达式),以便更快地识别哪些内容重要,哪些内容不重要。 它可以过滤行(再次使用正则表达式)。 它具有交互式菜单,用于编辑给定的正则表达式以及删除和添加窗口。 还可以拥有显示 shell 脚本和其他软件输出的窗口。 在查看外部软件的输出时,MultiTail 可以模拟“watch”等工具的功能。 当当前用户的收件箱中收到新邮件时,状态行将变为绿色。 要重置此“已收到邮件”状态,请按空格键。 如需随时获取帮助,请按 F1。
选项
-i 文件
选择要监视的文件。 您可以使用多个 -i 文件参数。 仅当文件名以连字符(“-”)开头时,才需要在文件名前面添加 -i 文件。
-I 文件
与 -i 文件 相同,但将输出添加到上一个窗口(因此,输出合并)。
-iw 文件 间隔
-Iw 文件 间隔 类似于“-i”/“-I”,但需要该参数为通配符,第二个参数为间隔。 最初,MultiTail 将从修改时间最新的第一个文件开始监视。 每次间隔,它都会检查是否创建(或修改)了任何新文件,并开始监视该文件。 *请不要忘记* 将文件名放在引号中,否则 shell 将尝试替换它们!
-l 命令
在窗口中执行的命令。 参数是命令。 别忘了使用单引号,如果外部命令需要参数!(例如,-l "ping host”)
-L 命令
与 -l 相同,但将输出添加到上一个窗口(因此,输出合并)。
-j
从标准输入读取(只能使用一次,因为只有一个标准输入)。
-J
与 -j 相同,但将输出添加到上一个窗口(因此,输出合并)。
--mergeall
将以下所有文件合并到同一个窗口中(请参阅“--no-mergeall”)。
--no-mergeall
停止将所有文件合并到一个窗口中(参见 '--mergeall');
--no-repeat
当同一行重复出现时,将抑制该行,同时打印一条“上次消息重复 x 次”的消息。
--mark-interval x
当没有其他内容被打印时,每隔 'x' 秒打印一条标记行。
-q i path
以间隔 'i' 检查 path 中的新文件,所有文件都在新的窗口中。可以使用 shell 识别的文件路径。例如 "/tmp/*"。请注意:不要忘记在路径名周围添加引号,以防止 shell 解析它!
-Q i path
类似于 -q:但将它们全部合并到一个窗口中。
--new-only
对于 -q/-Q:仅为 MultiTail 启动后创建的文件创建窗口。
--closeidle x
当超过 'x' 秒没有处理任何新数据时,关闭窗口。
-a x 将输出也写入文件 'x'(类似于 'tee'),在 MultiTail 过滤之后。请注意:
您需要将 "-a 文件" 放在您要监视的文件之前!
-A x 将输出也写入文件 'x'(类似于 'tee'),在 MultiTail 过滤之前。
请参阅关于 "-a" 的说明。
-g x 将输出也发送到命令 'x',在 MultiTail 过滤之后。
-G x 将输出也发送到命令 'x',在 MultiTail 过滤之前。
-S 在合并的输出前添加子窗口编号。
-t title
使用此开关,"title" 将显示在状态行中,而不是文件名或命令行。
-n number_of_lines
初始要尾随的行数。默认值取决于终端窗口的大小。
-N number_of_lines
类似于 -n,但此参数将用于在此参数之后尾随的所有文件/命令。
-r interval
在命令(使用 -l/-L 启动)退出后重新启动该命令。使用 interval 可以设置在重新启动之前要休眠多长时间。
-R interval
类似于 -r,但仅显示与上次运行相比的输出差异。
-rc / -Rc interval
类似于 -r / -R,但在每次迭代之前清除窗口。
-h 显示帮助信息。
-f 尾随以下文件名,而不是文件描述符。
--follow-all
对于此开关之后的所有文件:尾随以下文件名,而不是文件描述符。
-fr filter
使用来自配置文件中的预定义过滤器。
-e 对以下文件使用下一个正则表达式。
-ex 对以下文件使用正则表达式,并在匹配时执行该命令。该命令将整个匹配行作为命令行参数传递。
-eX 类似于 '-ex',但仅将匹配的子字符串作为参数传递。这需要使用带 '(' 和 ')' 的正则表达式。
-ec 对以下文件使用正则表达式并显示匹配项。
-eC 对以下文件使用正则表达式,但显示所有内容并以相反的颜色显示匹配项。
-E 对以下文件使用下一个正则表达式。
-v 否定下一个正则表达式。
-s x 将屏幕垂直分割为 'x' 列。
-sw x 指定屏幕分割的位置。例如 '-sw 20,40,,10'(=4 列)。
-sn x 用于垂直分割时,每列的窗口数量(与 -s 或 -sw 一起使用)。例如:'-sn 3,,2'。
-wh x 设置窗口的高度(提示:如果无法适应,则高度会进行调整)。
-cS scheme
使用在 `multitail.conf` 中定义的方案 `scheme` 显示下一个给定的文件。
-CS scheme
使用在 `multitail.conf` 中定义的方案 `scheme` 显示所有后续文件。
-csn 以下开关的额外开关;不使用反色(反转颜色)。
-cs 以颜色显示下一个给定的文件(syslog)。
-c 以颜色显示下一个给定的文件。
-Cs 以颜色显示所有后续文件(通过 syslog 方案)。
-C 以颜色显示所有后续文件。
-Cf field_index delimiter
以颜色显示所有后续文件,具体取决于使用 `field_index` 选择的字段。字段由定义的定界符分隔。
-cf field_index delimiter
以颜色显示下一个文件,具体取决于使用 `field_index` 选择的字段。字段由定义的定界符分隔。
-ci color
使用特定的颜色。在合并多个输出时很有用。
-cT terminalmode
解释终端代码。目前仅支持 ANSI。
-c- 不要为以下文件着色。
-C- 不要为以下文件着色。
-ts 在每行添加时间戳(格式可在 `multitail.conf` 中配置)。
-Z color
指定标记行的颜色属性。
-T 在标记行中放置时间戳。
-d 不要更新状态行。
-D 完全不显示状态行。
-du 将状态行放在数据窗口的上方。
-z 不显示“窗口已关闭”的窗口。
-u 设置屏幕更新间隔(用于慢速连接)。
-m nlines
设置缓冲区大小。如果希望取消缓冲区的限制,请将 nlines 设置为 0(零)。
-mb x 设置回滚缓冲区大小(以字节为单位,使用 xKB/MB/GB)。
-M nlines
为所有后续文件设置缓冲区大小。
-p x [y]
设置行尾换行:a = 打印所有内容,包括行尾换行。l = 仅显示从左侧开始,直到窗口的右侧。r = 从行的右侧开始显示所有内容。s = 从进程名称开始显示所有内容。S = 从进程名称之后开始显示所有内容。o = 从偏移量 'y' 开始显示所有内容。
-P x [y]
类似于 -p,但适用于所有后续窗口。
-ke x 使用正则表达式 'x' 剥离输入的部分内容。
-kr x y
从偏移量 x 开始剥离输入的部分内容,到偏移量 y 结束(不包括 y)。
-kc x y
剥离输入的部分内容:使用定界符 'x' 剥离列 'y'。
-ks x 使用来自配置文件中的编辑方案 'x'。
-w 不使用颜色。
-b n 设置制表符宽度。
--config filename
从给定的文件名加载配置。
-x 设置 xterm 标题:%f 将被替换为最后更改的文件,%h 将被替换为主机名,%l 将被替换为系统的负载,%m 将被替换为“有新邮件!”(如果当前用户有新邮件),%u 将被替换为当前有效用户,%t 将被替换为上次更改文件的的时间戳,%% 将被替换为一个 %。
-o configfile-item
通过命令行处理配置文件项,以防无法编辑默认配置文件。
--cont
将以“´”结尾的行连接起来。
--mark-interval interval
当没有输入时,每隔“interval”秒打印一个“---mark---”行。
--mark-change
当合并多个文件并且 multitail 在两个窗口之间切换时,打印一个带有文件名的标记行。
--no-mark-change
不要在文件更改时打印标记行(覆盖配置文件)。
--label text
在每一行前面加上“text”。当合并多个文件和/或命令时很有用。
--retry
如果后续文件无法访问,则继续尝试打开它。
--retry-all
类似于 --retry,但适用于所有后续文件。
-cv x
使用转换方案“x”(请参阅 multitail.conf)。
--basename
仅在状态行中显示文件名(而不是路径)。
-F file
将“file”用作配置文件(而不是默认配置文件)。
--no-load-global-config
不要加载全局配置文件。
--beep-interval x
让终端每处理 x 行就发出一次蜂鸣声。按主菜单中的“i”键,查看已发出多少次蜂鸣声。
--bi x
类似于“--beep-interval”,但仅适用于当前(子)窗口。可以按主菜单中的“t”键,查看有关此(子)窗口的蜂鸣声统计信息。
-H
显示心跳(以保持会话的活跃状态)。
-V
显示版本并退出。
键
程序运行时,您可以按一些键。要查看列表,请按 F1(或 ^h)。 您可以随时按 F1(或 ^h):它会提供与上下文相关的说明。按“q”退出程序。
示例
请参阅 http://www.vanheusden.com/multitail/examples.html 以获取更多示例。
multitail /var/log/apache/access_log logfile -i -filestartingwithdatsh
这将创建三个窗口。一个显示 /var/log/apache/access_log 的内容,一个显示 logfile 的内容,依此类推。
multitail -R 2 -l "netstat -t"
这将每 2 秒运行一次 netstat,然后显示自上次运行以来发生的变化。这样就可以看到正在建立的新连接和正在关闭的连接。
multitail logfile -l "ping 192.168.1.3"
这将创建两个窗口。一个显示 logfile 的内容,另一个显示“ping 192.168.1.3”的输出。
multitail /var/log/apache/access_log -I /var/log/apache/error_log
这将创建一个窗口,其中包含 /var/log/apache/access_log 的内容与 /var/log/apache/error_log 的内容合并。
multitail -M 0 /var/log/apache/access_log -I /var/log/apache/error_log
与上一个示例相同。此示例会将所有记录的条目存储在缓冲区中,以便以后可以浏览它们(按“b”键)。
文件
${XDG_CONFIG_HOME}/multitail/config
如果定义了 ${XDG_CONFIG_HOME}。
${HOME}/.multitailrc
如果定义了 ${HOME}。
~/.multitailrc
当未定义 ${XDG_CONFIG_HOME} 或 ${HOME} 时,它将使用 (struct passwd*)pp->pw_dir 来自 pwd.h 标准头文件。
错误
随着该程序随着时间的推移变得越来越大,并且有时会临时添加新的功能,可能会引入一些错误。如果您发现任何错误,请通知 _。
不过,除了调整终端窗口大小之外。在执行此类操作时,程序可能会崩溃。在这种情况下,将 ncurses 库升级到至少 5.3 版本可能会有所帮助。
参见
http://www.vanheusden.com/multitail/
注意事项
此页面描述了已安装的 multitail 包中找到的 MultiTail;其他版本可能略有不同。请将更正和补充内容发送到 \_。将程序中的错误报告发送到 \_。