我想将生成的两个连续文本流合并为tail -f
一个,并在同一屏幕上观看它们。可以吗?如果有帮助的话,两个文本流都是面向行的(例如日志)。
更新:为了清楚起见,这两个tail -f
流不是本地文件,而是来自两个远程 SSH 会话,例如ssh remote-host tail -f file.log
答案1
tail
支持多种文件,例如:
tail -q -f file1 file2
答案2
如果您只想查看日志行,而之后不需要数据,那么为什么不呢:
ssh host1 tail -f file & ssh host2 tail -f file &
为了完成您在评论中所说的内容,如果您有以下pee
命令(moreutils):
pee 'ssh host1 tail -f file' 'ssh host2 tail -f file' < /dev/null
答案3
我想到的一个快速而肮脏的方法是跟踪每台远程计算机上的每个日志文件,并将它们重定向到本地的临时文件。然后使用以下方法跟踪两个日志golimar建议。
- ssh 用户@主机1 -C tail -f /path/to/log >> /tmp/log1.tmp
- ssh 用户@host2 -C tail -f /path/to/log >> /tmp/log2.tmp
- tail -q -f /tmp/log1.tmp /tmp/log2.tmp
它并不漂亮,需要保留本地数据,并且需要将前 2 个命令置于后台(或运行screen
或类似),但它应该可以完成工作!
答案4
您可以在日志中查看。
我创建的一个 Java 工具,能够使用 SSH 读取本地和远程日志文件。使用起来相当简单。
更多解释:https://github.com/pschweitz/insidelog/wiki
只需下载与您的操作系统相对应的 Java 运行时中的本机 jar 版本可执行文件(需要 java 8_40 或更高版本):
https://github.com/pschweitz/insidelog/releases
您可以找到完整的文档(嵌入在 Github 页面中)