原文:https://blog.csdn.net/qq_36622490/article/details/100773589
這個需求主要是我在jenkins中pipeline的代碼里,需要使用shell語言執行遠程連接並且部署的工作,但是大多數的shell和服務器交互是使用expect解釋器 就是之前我寫過的那個關於expect有關的文章,問題是jenkins中默認的shell解釋器只有bash,不能更改解釋器的。所以就很難受,國內的百度基本都是搬運過來的內容,毫無意義,浪費時間,在國外博客浪盪幾天之后終於找到了解決方案。
下面我來分享一下,大致意思呢就是執行完ssh 連接遠程主機之后需要執行的命令,可以進行如下操作,命令不要照抄,換成你自己的user名和ip地址。
【我在我自己電腦和服務器之間都配置了ssh免密碼登錄 直接使用ssh IP地址就可以登錄了,強烈建議配置ssh,非常方便】
1,登錄遠程主機執行單條命令
登錄完主機之后執行一條命令
1 $ ssh USER@HOST 'COMMAND'
獲取遠程主機的最新更新時間
1 $ ssh root@192.168.1.1 'uptime'
登錄完遠程主機就進行重啟遠程主機
1 $ ssh root@192.168.1.1 'reboot'
那么問題出來了,上面的都是執行一條命令,那如果我需要執行多條命令怎么辦呢?之前困擾我最大的問題就是這個,執行多條命令,雖然直接堆疊多條ssh 登錄的語句 那些前綴也可以,但是看着就惡心。這樣我們就可以使用以下幾個方案,原內容如下,我做了備注,這樣比較一目了然。
2,登錄遠程主機執行多條命令
可能還有小伙伴會問,如果需要ssh登錄遠程之后執行指定的腳本文件怎么做?
3,登錄遠程主機執行指定腳本文件
由此來看,英文還是非常重要的。不然遇到問題你都不知道怎么去搜了,不是我埋汰百度,確實國內搬運回答問題現象太嚴重,點進去一個除了站點不一樣 內容都一樣 連錯別字都一樣,如果你是經常和計算機打交道的一定下載個谷歌瀏覽器,必須可以使用谷歌,可以配置插件或者配置翻牆設備。