本文由 简悦 SimpRead 转码, 原文地址 https://www.cnblogs.com/HYanqing/p/11687498.html
这个需求主要是我在 jenkins 中 pipeline 的代码里,需要使用 shell 语言执行远程连接并且部署的工作,但是大多数的 shell 和服务器交互是使用 expect 解释器 就是之前我写过的那个关于 expect 有关的文章,问题是 jenkins 中默认的 shell 解释器只有 bash,不能更改解释器的。所以就很难受,国内的百度基本都是搬运过来的内容,毫无意义,浪费时间,在国外博客浪荡几天之后终于找到了解决方案。
下面我来分享一下,大致意思呢就是执行完 ssh 连接远程主机之后需要执行的命令,可以进行如下操作,命令不要照抄,换成你自己的 user 名和 ip 地址。
【我在我自己电脑和服务器之间都配置了 ssh 免密码登录 直接使用 ssh IP 地址就可以登录了,强烈建议配置 ssh,非常方便】
1,登录远程主机执行单条命令
登录完主机之后执行一条命令
1 | 1 $ ssh USER@HOST 'COMMAND' |
获取远程主机的最新更新时间
1 | 1 $ ssh root@192.168.1.1 'uptime' |
登录完远程主机就进行重启远程主机
1 | 1 $ ssh root@192.168.1.1 'reboot' |
那么问题出来了,上面的都是执行一条命令,那如果我需要执行多条命令怎么办呢?之前困扰我最大的问题就是这个,执行多条命令,虽然直接堆叠多条 ssh 登录的语句 那些前缀也可以,但是看着就恶心。这样我们就可以使用以下几个方案, 原内容如下,我做了备注,这样比较一目了然。
2,登录远程主机执行多条命令
可能还有小伙伴会问,如果需要 ssh 登录远程之后执行指定的脚本文件怎么做?
由此来看,英文还是非常重要的。不然遇到问题你都不知道怎么去搜了,不是我埋汰百度,确实国内搬运回答问题现象太严重,点进去一个除了站点不一样 内容都一样 连错别字都一样,如果你是经常和计算机打交道的一定下载个谷歌浏览器,必须可以使用谷歌,可以配置插件或者配置翻墙设备。