我在jenkins工作中添加了Execute Shell構建步驟。如何在jenkins的數據庫shell上運行數據庫腳本?
我需要啓動Oracle NoSQL shell並運行一些DDL。
我寫了shell腳本。
#Run Client
java -jar /root/software/kv-3.2.5/lib/kvcli.jar -host localhost -port 5000
#Run scripts
plan remove-table -name PersonnelUni1To1FK -wait
plan remove-table -name HabitatUni1To1FK -wait
當我excecute從我端子短一樣,它的正常工作。在第一個命令數據庫shell啓動後運行,剩餘的腳本運行在該shell上。
但Jenkins的構建失敗。
詹金斯工作控制檯輸出:
+ Java的罐子/root/software/kv-3.2.5/lib/kvcli.jar -host本地主機-port 5000
KV-> +計劃中刪除表-name PersonnelUni1To1FK -WAIT /tmp/hudson2708562803834708095.sh:線17:計劃:命令未找到
生成步驟「執行殼」標記構建爲失敗
它試圖在我的ubuntu shell而不是數據庫shell上執行這一切。
'plan remove-table -name PersonnelUni1To1FK -wait'命令在Oracle NoSQL外殼上運行而不是我的外殼程序 –
如果我從我的ubuntu終端(外殼程序)中啓動'plan remove-table -name PersonnelUni1To1FK -wait', - 「找不到命令」 –
但是你正在從shell腳本運行'plan'!當然,shell不會找到該命令。您需要將其饋送到Oracle shell。例如,如果Oracle shell從STDIN讀取命令,則需要將命令重定向到Oracle shell的STDIN。 – user1934428