如何在jenkins中执行shell脚本

vm0i2vca  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(566)

我有几个shell命令需要在构建准备就绪时执行。在jenkins中,我创建了一个带有execute shell选项的freestyle项目,如下所示:


# !/bin/sh

cd /path to kafka folder
bin/zookeeper-server-start.sh config/zookeeper.properties &
bin/kafka-server-start.sh config/server.properties &
cd /path to elasticsearch
bin/elasticsearch

我可以从本地文件执行这个shell命令,但不能通过jenkins执行。
以下是我在jenkins中看到的控制台输出:

/Users/Shared/Jenkins/tmp/hudson2342342342342357656.sh: line 2: cd: /path to kafka folder: Not a directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE

有什么能帮我解决的吗?谢谢。

zdwk9cvp

zdwk9cvp1#

这是一个权限问题。请检查您的jenkins用户是否有足够的权限运行此shell命令

k4ymrczo

k4ymrczo2#

找出问题的最佳方法(例如权限问题;文件夹不存在;等等),这样做:
登录执行此作业的从属节点(如果没有定义,则可能是jenkins服务器本身(“master”)
如果在“master”上:成为jenkins运行的用户(很可能是“jenkins”): sudo su - jenkins (如果您有sudo/root访问权限),或者 su - jenkins (如果你知道Jenkins的密码)
如果作业在另一个从属服务器上运行,请找出jenkins服务器连接的用户。成为从属节点上的用户。 cd /path/to/workspace (通过查看作业运行的控制台,可以找到作业的工作区)
现在从shell中运行您的命令,因为它们在构建步骤中-它们失败的原因可能会变得更加明显。

相关问题