【问题标题】:Jenkins publish over ssh for running a shell scriptJenkins 通过 ssh 发布以运行 shell 脚本
【发布时间】:2017-10-11 07:31:01
【问题描述】:

我有一份 Jenkins 工作,它会将战争文件复制到远程系统。我正在使用通过 ssh 插件发布来完成此操作。一切正常,战争被复制到远程系统。复制war文件后,我需要运行远程系统中的shell脚本。所以通过 ssh 发布为此提供了一个 Exec 命令。

sh /home/ubuntu/build/test.sh

该脚本用于删除 webapps 中已部署的 war 目录,然后将 war 复制到 webapps。

但我正面临 Permission denied 问题。以下是我遇到的错误

rm: cannot remove ‘/tomcat8/webapps/test/WEB-INF/classes/test.propetiess’: Permission denied
rm: cannot remove ‘/tomcat8/webapps/test/WEB-INF/classes/query.txt’: Permission denied

cp: cannot create regular file ‘/tomcat8/webapps/test.war’: Permission denied

任何帮助将不胜感激

【问题讨论】:

    标签: ubuntu jenkins ssh


    【解决方案1】:
    1. 您是否以具有权限的用户身份登录?当您 ssh 时,您提供的用户名和密码必须具有访问系统上文件的权限。

    2. 确保文件是可执行的。 sudo chmod +x 或任何必要的权限。这适用于 shell 脚本和 war 文件。这是最有可能的原因。

    3. 如果不是这 2 个,请尝试从终端运行脚本,看看是否存在相同的错误。

    当你尝试完这 3 件事后,更新你的发现。

    执行命令的用户应该可以访问 shell 脚本和战争。最简单但安全性较低的方法是通过 sudo 更改权限,然后执行脚本。

    【讨论】:

    • 日志就是这样显示的。我可以从终端执行脚本。谢谢你的命令。我会检查第 1 步和第 2 步
    • 是的,请说出你的发现。