大佬教程收集整理的这篇文章主要介绍了SSH 连接到多台机器并运行多个命令,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
编写脚本ssh到多台机器并运行多个命令。但是,一旦 ssh 成功,我就可以在没有执行单个命令的情况下从每个主机获得以下信息,for 循环工作正常,我能够成功 ssh 进入所有机器。
连接被主机端口 22 关闭
如果我在 ssh 中排除 -tt 标志,我也会得到,
伪终端不会被分配,因为 stdin 不是终端。
如何让以下脚本在机器上成功执行。
下面是我正在使用的脚本
@H_419_12@for vm_ip in "${vm_ip_arraY[@]}"
do
ssh -tt -i {$key_pair} {$usernamE}@${vm_ip} << HERE
[do multiple stuff here like update packages and other maintainence stuff (sudo commands)]
exit
HERE
done
附加信息:我也运行了一些导出语句,这会导致问题吗?
是否建议将多个命令作为单个机器上的脚本?不过,以这种方式更新脚本是一场噩梦。
也许这是一个逃避问题。如果未引用该词,则 HERE 文档会进行参数扩展。
那就试试吧:
ssh -tt -i {$key_pair} {$usernamE}@${vm_ip} << 'HERE'
# ^ ^
,
例如,它会告诉你:
{$keypair}: This { is literal. check expression (missing ;/\n?) or quote it.
换句话说,我会使用${key_pair}
,而不是{$key_pair}
:
#! /bin/bash
for vm_ip in "${vm_ip_arraY[@]}"
do
ssh -tt -i "${key_pair}" "{$usernamE}@${vm_ip}" << HERE
[do multiple stuff here like update packages and other maintainence stuff (sudo commands)]
exit
HERE
done
以上是大佬教程为你收集整理的SSH 连接到多台机器并运行多个命令全部内容,希望文章能够帮你解决SSH 连接到多台机器并运行多个命令所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。