avatar

目录
使用shell登录远程服务器执行多条命令,ssh登录之后执行脚本文件

本文由 简悦 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,登录远程主机执行单条命令

登录完主机之后执行一条命令

plaintext
1
2
1 $ ssh USER@HOST 'COMMAND'

获取远程主机的最新更新时间

plaintext
1
2
1 $ ssh root@192.168.1.1 'uptime'

登录完远程主机就进行重启远程主机

plaintext
1
2
1 $ ssh root@192.168.1.1 'reboot'

那么问题出来了,上面的都是执行一条命令,那如果我需要执行多条命令怎么办呢?之前困扰我最大的问题就是这个,执行多条命令,虽然直接堆叠多条 ssh 登录的语句 那些前缀也可以,但是看着就恶心。这样我们就可以使用以下几个方案, 原内容如下,我做了备注,这样比较一目了然。

2,登录远程主机执行多条命令

 可能还有小伙伴会问,如果需要 ssh 登录远程之后执行指定的脚本文件怎么做?

3,登录远程主机执行指定脚本文件
 

由此来看,英文还是非常重要的。不然遇到问题你都不知道怎么去搜了,不是我埋汰百度,确实国内搬运回答问题现象太严重,点进去一个除了站点不一样 内容都一样 连错别字都一样,如果你是经常和计算机打交道的一定下载个谷歌浏览器,必须可以使用谷歌,可以配置插件或者配置翻墙设备。

文章作者: thf
文章链接: http://pcbopcbo.github.io/2020/06/23/2020062317/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 漂泊的个人笔记

评论