SSH连接服务器后执行多条命令

[TOC]

SSH连接服务器后执行多条命令

大家平时有没有遇到自己连接云服务器,ssh 连接上去之后,发现自己的一些小工具用不了

例如go build无法使用 ,由于我们安装配置golang 环境的时候,是在文件 /etc/profile 中写了配置,因此需要 source 一下 /etc/profile

那么是否可以在ssh 连接上服务器的时候就可以立即自动执行这一类命令呢?

我们的智慧无穷无尽,小工具也是非常的多,今天来讲述一下 SSH连接服务器后执行 多条命令可以如何做

1 使用分号隔开

使用 分号 ; 来隔开命令

附带1条命令

ssh User@Host 'source /etc/profile'

附带多条命令

ssh User@Host 'source /etc/profile ; uptime'

2 使用管道符号隔开

使用管道|来隔开命令

附带1条命令

ssh User@Host 'source /etc/profile'

附带多条命令

ssh User@Host 'source /etc/profile | uptime'

3 使用写EOF的方式

同样适用于一条 / 多条命令

ssh User@Host << EOF
> ls -al
> source /etc/profile

4 使用脚本的方式

使用脚本的方式花样就更多了,例如有一个脚本myinit.sh/home/admin/code/下面

myinit.sh

#!/bin/bash
source /etc/profile
ls -al

远程连接服务器

ssh User@Host 'bash -s' < /home/admin/code/myinit.sh