Rundeck远程节点命令执行报错,如何获取更详细远程执行日志?
以下是几种获取更详细执行日志的方式,帮你定位bash: +2d: no such file or directory的问题:
调整Rundeck服务端日志级别
编辑Rundeck的日志配置文件/etc/rundeck/log4j.properties,添加或修改以下配置项,将日志级别设为DEBUG:# 开启SSH执行模块的调试日志 log4j.logger.com.dtolabs.rundeck.core.execution.ssh=DEBUG # 开启整体执行引擎的调试日志 log4j.logger.com.dtolabs.rundeck.core.execution=DEBUG保存后重启Rundeck服务:
systemctl restart rundeckd重新执行作业后,查看Rundeck主日志
/var/log/rundeck/service.log,里面会包含SSH连接过程、远程执行的完整命令、环境变量传递等细节。启用作业的详细输出模式
编辑目标作业,在执行选项面板中勾选Verbose和Log Output选项,保存后重新执行作业。此时作业的执行日志会显示更细致的步骤,包括远程节点上实际执行的命令内容。开启Shell调试模式
在作业的执行命令中添加set -x,强制开启shell的调试输出,比如将原执行命令修改为:set -x && /path/to/your/target/script.sh这样执行日志会输出每一步执行的命令和参数,能直接看到触发错误的具体指令。
检查远程节点临时文件
Rundeck执行远程脚本时,会将脚本内容写入远程节点的/tmp目录下(文件名通常包含rundeck前缀)。作业失败后立即登录远程节点,查找并查看这些临时文件的内容,能确认Rundeck传递的脚本是否存在格式问题。
补充:
bash: +2d: no such file or directory这类错误一般是Rundeck生成的命令串出现了特殊字符解析、转义异常,通过上述日志方法获取到实际执行的命令后,就能快速定位问题根源。
内容的提问来源于stack exchange,提问作者Jorge García

