代码如下
ssh -p $port $user@$ip 'cmd'
port : ssh连接端口号
user: ssh连接用户名
ip:ssh连接的ip地址
cmd:远程服务器需要执行的操作
该命令的作用就是通过ssh远程在对应IP的机器上执行cmd命令
通常情况下port为22,如需指定才需要加-p,不加的话默认为22
其中cmd可以是单个命令,也可以是一个脚本,在执行脚本的过程中要特别注意绝对路径的使用,因为远程执行的脚本中如果包含相对路径会报错,所以如果远程执行脚本尽量使用绝对路径.
如果远程服务器禁止root用户登录,使用 -t 参数提供一个远程服务器的虚拟tty终端,加上这个参数我们就可以在远程服务器的虚拟终端上输入自己的提权密码了,非常安全
ssh -t -p $port $user@$ip 'cmd'
实例:
#!/bin/bash
#变量定义
ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3")
user="tester"
remote_cmd="/home/test.sh"
#本地通过ssh执行远程服务器的脚本
for ip in ${ip_array[@]}
do
ssh -t -p $port $user@$ip "remote_cmd"
done