如何通过Jenkins调试运行shell脚本的问题?

时间:2018-05-05 05:42:38

标签: python shell jenkins

我正在运行一个来自Jenkins的python脚本,它正在运行一个shell脚本,该脚本因Permission denied错误而失败,我尝试以下方法调试问题...

1.我正在打印运行Jenkins作业的userid并且它是正确的用户

2.我在Jenkins节点上使用相同的用户ID手动运行pre_audit命令,它运行正常,没有权限被拒绝错误

这个错误只发生在Jenkins运行时,为什么会发生这种情况一无所知?关于为什么会发生这种情况的指示或者如果使用具有权限的正确用户,如何进一步调试?

2018-05-04 22:09:39 script.py submit_to_techteamweb    469    INFO    : userid:username

2018-05-04 22:09:39 script.py submit_to_techteamweb    471    INFO    : ./pre_audit --version 9.130.63.0.32.6.27 --chip 4364 --file /Users/username/FWintegration/techteam-automation/integration/release_notes.txt
2018-05-04 22:09:39 script.py submit_to_techteamweb    482    INFO    : Printing error...
2018-05-04 22:09:39 script.py submit_to_techteamweb    483    INFO    : Traceback (most recent call last):
  File "./pre_audit", line 46, in <module>
    os.mkdir(submission_directory)
OSError: [Errno 13] Permission denied: '/SWE/Teams/techteam/Firmware/submissions/4364/9.130.63.0.32.6.27

2 个答案:

答案 0 :(得分:1)

从jenkins运行shell脚本需要适当的执行权限。在执行script.sh运行以下命令之前的python脚本中:

sh "chmod 755 script.sh"

答案 1 :(得分:0)

机器上是否启用了SELinux?可能是Jenkins服务受限制(应该是)在$WORKDIR之外编写文件。在工作目录之外创建文件是Jenkins中的Bad Idea™。