You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jenkins SSH Publishers插件时如何输出远端脚本的完整报错信息

问题原因

SSH Publishers插件默认不会将远程服务器执行命令的标准输出、标准错误内容回传到Jenkins控制台,你看到的状态码127本身就对应「命令未找到」的错误类型,只是缺少具体报错上下文。

解决步骤

方案一:调整插件配置(推荐)

  • 进入对应Jenkins项目的配置页面,定位到 SSH Publishers 配置模块
  • 点击你当前使用的SSH服务条目下的高级按钮
  • 勾选 Exec in pty(在伪终端中执行)和 Verbose output in console(控制台输出详细日志)两个选项
  • 保存配置后重新执行构建,即可看到远程脚本的完整执行日志,包括你要的行号和具体命令不存在的报错。

方案二:命令行重定向输出

如果不方便修改插件配置,直接修改SSH执行命令的内容,将标准错误重定向到标准输出即可被捕获:

sh -x /你的脚本完整路径/demo.sh 2>&1

建议填写脚本的绝对路径,避免Jenkins SSH执行时的默认工作目录和你手动测试时的目录不一致,出现找不到脚本的额外问题。

方案三:脚本内增加强制输出配置

如果上述两种方案还是看不到日志,可在demo.sh开头添加如下配置,关闭输出缓冲、强制打印所有执行信息:

#!/bin/sh
# 打印所有执行的命令
set -x
# 遇到错误立即退出,管道命令也会返回最后一个非0的退出码
set -eo pipefail
# 关闭标准输出/错误的缓冲,避免日志被缓存丢弃
stdbuf -i0 -o0 -e0

内容的提问来源于stack exchange,提问作者FinleyMa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:27:04