将尾部的输出传递到后台脚本,同时仍显示数据

将尾部的输出传递到后台脚本,同时仍显示数据

我有一台服务器和一台本地 PC。当本地 PC 启动时,我运行以下脚本以在 PC 上本地显示服务器日志的输出。

/usr/bin/ssh -p '444' 'user@remoteserver' "tail -f /log/short.log"

到目前为止,一切都运行良好,但我想做的是,每次“尾部”出现新行时,将此输出也传递给另一个后台脚本。然后,后台脚本将检查给定的行是否包含任何关键字,如果匹配,则它将播放声音,而原始尾部仍将工作并像以前一样在屏幕上列出数据。

我可以轻松完成检查关键字/播放音频的脚本,但我不明白的部分是如何将每一行新内容传递给我的脚本并仍将输出打印在屏幕上。

答案1

您可以使用tee将单个输入流分成两个或多个输出流。tee将所有输入写入标准输出和其命令行上命名的文件。

考虑:

ssh somewhere "tail -f /var/log/whatever.log" | tee /dev/tty | /usr/local/bin/myscript

相关内容