小编Sb *_*Lon的帖子

如何获取特定日志文件并在jenkins控制台输出中显示其内容

我有以下Jenkins post-build shell脚本:

ssh user@my_server <<EOF
  service my_service stop
  service my_service start
  tail -f /opt/services/my_service/logs/current
  exit
EOF
Run Code Online (Sandbox Code Playgroud)

此脚本在远程主机(my_server)上重新启动my_service.

我的问题是:命令服务my_service start只是向RUNIT发出一个请求来运行my_service,即服务my_service start在执行后立即返回.

但是服务my_service start运行一个SpringBoot java Web应用程序,它将所有日志信息写入.../logs/current日志文件.为了捕获这个日志信息,我添加了命令tail -f/opt/services/my_service/logs/current,但在这种情况下,Jenkins构建永远不会结束))例如tail -f命令永远不会停止.

有没有办法执行我的后构建脚本(只在远程服务器上启动我的Web应用程序)并在2分钟内获取.../logs/current日志文件,或者直到此日志包含"Web应用程序MyApplication具有"已经开始".

我想在Jenkins的控制台输出中看到.../logs/current log file的内容并在2分钟后杀死tail -f

java linux logging jenkins

6
推荐指数
1
解决办法
1637
查看次数

Bash变量始终为空

以下bash脚本的结果是输出中的"空行"

ssh dev@my_service <<EOF
  START_SERVICE_TIME_IS_UP=124
  echo $START_SERVICE_TIME_IS_UP
  exit  
EOF
Run Code Online (Sandbox Code Playgroud)

无法理解为什么.我希望在输出中看到"124".远程服务器正在运行Red Hat linux.

linux bash heredoc

0
推荐指数
1
解决办法
329
查看次数

标签 统计

linux ×2

bash ×1

heredoc ×1

java ×1

jenkins ×1

logging ×1