[英]jenkins script code issue in execute shell
我正在使用jenkins,我正在嘗試使用gitlab將代碼部署到產品服務器中。 所以我創建了一個新項目,選擇了git項目和分支,選擇了Poll SCM。
現在在execute shell中 ,我正在使用如下腳本代碼:
ssh user@prod-server // in log, user got logged in
cd /myfolder // in log showing 'myfolder' not found
好像詹金斯在本地服務器而不是產品服務器中檢查“ myfolder”文件夾,所以說是“未找到”。
那么,我該如何解決呢? 為什么詹金斯不檢查生產服務器中的“ myfolder”?
在執行ssh命令后,您沒有交互式會話的問題(與坐在終端上時的情況不同)
如果只是一個命令,則可以將其傳遞給ssh
,如下所示:
ssh user@prod-server 'cd /myfolder'
您甚至可以將幾個命令鏈接在一起:
ssh user@prod-server 'cd /myfolder && cat myfile'
使用以下命令分隔符:
- ;
總是執行下一個命令。
- &&
僅在上一個成功的情況下執行下一個命令。
- ||
僅當上一個失敗時才執行下一個命令。
但是,一旦收到太多命令,最好將它們放入外殼腳本中,然后執行該外殼腳本:
ssh user@prod-server 'bash -s' < /path/to/local_script.sh
(注意,在上面的示例中,不需要將local_script.sh
復制到服務器)
如果您需要將yr文件復制到外部服務器,則可以使用“ scp”( http://www.tecmint.com/scp-commands-examples/ )或使用一些jenkins插件(例如,已經告訴過https:// wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.