linux 如何使用SSH访问多台计算机?

nqwrtyyt  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(103)

现在我可以使用下面的脚本来访问一台机器。

ssh machine01 cat test.sh

字符串
但现在我有30多台机器需要访问。他们的名字格式都是machine01, machine02, ..., machine30
如何使用for语句来实现呢?类似于:

for num in [from 01 to 30]
do
  ssh es-data2023+num cat /data/restart.sh
done

7qhs6swi

7qhs6swi1#

正如@Barmar已经解释过的,你可以在bash中使用{01..30},它将扩展为完整的数字序列,因此工作脚本可以如下所示:

for HOSTID in {01..30}
do
   ssh user@machine$HOSTID "cat /data/restart.sh"
done

字符串
但如果你真的想(远程)管理你的30台主机,我会好好看看Ansible,而不是试图重新发明轮子。Ansible还使用SSH,因此您不需要在服务器上安装任何其他代理,只需安装一个控制节点即可管理它们。现在,您还可以并行运行任务,并更好地保持结果的分离。更不用说继续开发Ansible可能性的庞大社区了。

相关问题