所以我有 3 个活跃的 Raspberry Pi。我想仅在其中一台树莓派的控制台中使用一个命令来检查它们的内存。我首先想到的是使用 sshpass ,如下所示:
free -h & sshpass -p 'password' ssh pi@ip2 free -h & sshpass -p 'password' ssh pi@ip3 free -h
此命令确实显示第一个和第二个 RPi 的内存。然而,没有显示来自第三个 RPi 的信息。
关于如何获取所有 3 个活动 RPi 所需的内存信息,有什么建议吗?
答案1
好吧,首先我建议按照 RubberStamp 在评论中的建议使用 SSH 的公钥身份验证,这将显着减少命令行的大小。
现在,如果您想要比这更简单的东西,您将需要做一些进一步的设置工作,但任何此类解决方案通常会让您做的不仅仅是检查可用内存。
您可以采取两种方法:
- 创建您可以查询的系统监控设置。这样做的优点是您通常还可以查看历史数据,并且根据工具的不同,甚至可能不需要登录即可获取您想要的信息。
- 配置编排工具,让您轻松地同时直接查询所有三个系统。这不会让您跟踪历史数据(尽管它可以使设置和维护可以做到这一点的系统监控变得更容易),但它也可以用于各种各样的其他事情,例如自动化三个方面的软件管理系统。
第一种方法的流行选项包括:
收集的:这是大多数预建系统(例如防火墙和 NAS 系统)所使用的。它可能有点资源匮乏,并且需要花费大量精力来设置,但它为数据收集提供了很好的选择,并且在数据检索方面提供了疯狂的灵活性。如果你走这条路,我建议建立一个专门的系统来存储数据。
网络数据:这是我在所有系统上使用的。它本身处理大部分配置工作,并且与collectd相比使用的资源很少,但需要一些额外的工作来持久存储数据,并且默认情况下仅跟踪最近一小时的数据(并增加资源使用量)。
第二种方法的流行选项包括:
安西布尔:使用非常简单,将其安装在一个系统上,然后就可以开始了(通过 Ansible 管理的系统的唯一依赖项已经安装在几乎所有现代 Linux 发行版上)。配置很简单(您实际上只需要告诉它您想要管理哪些系统并确保您通过 SSH 进行有效身份验证),并且它可以向所有内容发出一次性命令。
木偶:不像 Ansible 那样容易设置(它需要在所有托管系统以及进行管理的系统上运行软件),但仍然很受欢迎。我自己从未使用过它,所以我无法对此发表太多评论。
厨师:和Puppet类似,也很流行,也是我无法多评论的,因为我自己没有使用过。
聚SH:一个简单的 SSH 包装器,旨在几乎完全完成您想要做的事情(除了它是专门为交互式使用而设计的)。除了工作 SSH 身份验证之外,不需要目标系统上的特殊支持。通过查阅基本集群管理 HOWTO 可以找到类似的选项(因为大多数此类工具都是为 Beowulf 集群设计的)。