使用 bash 脚本通过 ssh 从 x 个服务器获取信息

使用 bash 脚本通过 ssh 从 x 个服务器获取信息

我有服务器Master,SlaveA,SlaveB,SlaveC,,想要通过在主服务器上执行一个 bash 脚本来获取来自服务器的空间信息。

我怎样才能做到这一点?

--case--
192.168.1.1 - Master
192.168.1.10 - A
192.168.1.11 - B
192.168.1.12 - C

成为df奴隶。

--ex. output---
==Slave A==
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             7222500   3909896   2945720  58% /
==Slave B==
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             4222500   3909896   5744447  98% /
==Slave C==
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             1222500   509896   xxxxxxxx  50% /

非常感谢!DeLol

答案1

将您需要的命令放在主机上的快速脚本中,然后像这样运行该脚本:

ssh 192.168.1.10 < script.sh

这将在远程主机上执行 script.sh 中包含的命令,而无需将脚本复制到远程系统。

另请参阅:记录服务器详细信息

答案2

对于有限的客户端列表,我在我的bash函数中有一个~/.profile

ch () {

   echo host1
   ssh root@host1 $@
   echo host2
   ssh root@host2 $@
}

我这样称呼它:

ch df

这可以轻松扩展为从数组或配置文件读取的客户端列表。

另一个选择是使用像 cssh 或类似的东西。

相关内容