tee
是一个 Linux 下常用的命令工具之一,它能够将标准输入内容复制到文件和标准输出同时进行显示。这对于实时监控日志流来说是一个非常实用的功能。在系统运行过程中,通过 tee
命令可以将日志内容同步到终端以及指定的文件中。
基本语法如下:
tee [选项]... 文件...
最简单的使用方式是将某个命令输出的结果保存到一个或多个文件中,同时在屏幕上显示。例如:
$ who | tee users.txt
这个命令会列出当前系统中的所有用户,并将结果以文本的形式保存到 users.txt
文件中。
在实际使用中,tee
命令可以与一些特定的命令结合,实现实时查看日志文件的功能。比如常见的日志文件 /var/log/syslog
或者 journalctl
输出的日志流。通过将这些命令的输出重定向到 tee
之后,再将其传递给 less
或其他文本查看工具,可以实现滚动查看实时更新的日志内容。
journalctl
是 systemd 发行版本中管理日志的一个命令行工具。它提供了丰富的选项来查询、过滤和展示系统日志。使用 tee
命令结合 journalctl -f
可以实现实时查看系统日志。
$ journalctl -f | tee /dev/tty12
这里 /dev/tty12
是一个终端设备文件,你可以根据实际需要选择合适的终端。通过这种方式,既可以在终端中滚动查看日志内容,也可以将其保存到指定的文本文件中:
$ journalctl -f | tee system_log.txt
如果你使用的是传统的 tail
命令来查看日志文件尾部的内容,可以通过与 tee
的组合实现实时更新。例如:
$ tail -f /var/log/syslog | tee syslogs_tail.txt
这个命令会持续监控 /var/log/syslog
文件的末尾,并将新增加的日志内容实时输出到终端和 syslogs_tail.txt
文件中。
通过上述方法,我们可以使用 tee
命令轻松实现日志文件的实时查看与记录。这对于系统管理员来说非常有用,特别是在进行故障排查、性能监控等场景中。结合其他命令工具如 journalctl
, tail
, 等可以灵活地实现实时日志管理的需求。