如何在jenkins中运行数据库shell上的数据库脚本?

时间:2016-08-31 09:15:24

标签: shell jenkins

我在jenkins工作中添加了一个Execute Shell构建步骤。

我需要启动Oracle NoSQL shell并运行一些DDL。

我写了shell脚本。

\\rdwlhsdevserver\root\

当我从我的终端中取出同样的东西时,它的工作正常。在第一个命令数据库shell启动并且剩余的脚本在该shell上运行之后。

但是Jenkins的构建失败了。

Jenkins作业控制台输出:

  

+ java -jar /root/software/kv-3.2.5/lib/kvcli.jar -host localhost -port 5000

     

KV-> + plan remove-table -name PersonnelUni1To1FK -wait   /tmp/hudson2708562803834708095.sh:line 17:plan:command not found

     

构建步骤'执行shell'将构建标记为失败

它试图在我的ubuntu shell上执行这一切,而不是在数据库shell上。

2 个答案:

答案 0 :(得分:0)

plan是一个由shell执行的命令,对吗?错误消息只是说它没有找到命令,所以问题可能是PATH变量的设置。如果在shell脚本中指定plan的绝对路径,会发生什么?或者,确保Jenkins上的PATH变量正确。

答案 1 :(得分:0)

作为解决方法,

我把我所有的脚本

plan remove-table -name PersonnelUni1To1FK -wait
plan remove-table -name HabitatUni1To1FK -wait

and many more...

在文件/home/dev/ons/oracle-kv-db.script

为jenkins作业修改了shell命令

  

java -jar /root/software/kv-3.2.5/lib/kvcli.jar -host localhost -port 5000 < /home/dev/ons/oracle-kv-db.script

现在它不需要显式的数据库shell。