如何在詹金斯作业中实时显示在远程服务器上运行的日志

Posted

技术标签:

【中文标题】如何在詹金斯作业中实时显示在远程服务器上运行的日志【英文标题】:how to show logs running on remote server in jenkins job in real time 【发布时间】:2021-04-13 03:38:08 【问题描述】:

我在名为remoteserver1 的远程AIX 服务器上有一个名为startNode.sh 的shell 脚本。 我在 Jenkins 管道作业的帮助下触发远程服务器上的 startNode.sh 脚本。我正在使用 grovy 命令 sh 通过 ssh 运行脚本。

sh "ssh user@remoteserver1 startNode.sh"

在作业的控制台输出中,我看不到脚本的输出,因为作业似乎跳过了它。我将输出重定向到一个日志文件,并希望实时显示日志。

sh "ssh user@remoteserver1 'startNode.sh > output.log' "

我们该怎么做?是否有一些插件或其他东西可以显示日志。

我尝试了 tail -f 但它不起作用。我以 5 分钟的间隔使用 cat 直到 25 分钟,因为我的脚本最多需要 20 分钟才能完成。如何将日志实时显示到 Jenkins 控制台输出?

任何帮助将不胜感激。

【问题讨论】:

如果您在没有任何 jenkins 或管道的情况下运行此命令会发生什么:ssh user@remoteserver1 startNode.sh 【参考方案1】:

在您的 Jenkins 作业中运行 startNode.sh 脚本步骤后,我将在错误文件中输入 cat 命令。 startNode.sh 文件运行完成后,整个错误文件将输出到 Jenkins 作业控制台输出中。

【讨论】:

我已经在做,但我想要实时日志,就像我们在 tailf 上一样

以上是关于如何在詹金斯作业中实时显示在远程服务器上运行的日志的主要内容,如果未能解决你的问题,请参考以下文章

每个詹金斯奴隶只能运行一个作业吗?

如何在远程主机上的詹金斯中传递 $BUILD_NUMBER

运维开发:python websocket网页实时显示远程服务器日志信息

詹金斯 - 在工作之间传递变量?

詹金斯:如何测试奴隶

在詹金斯作业中使用 git repo 名称作为 ENV 变量