簡體   English   中英

jenkins腳本代碼在執行shell中的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM