Skip to main content
 首页 » 编程设计

linux之显示来自远程 linux 服务器的统计信息

2023年11月22日17yjmyzz

我的目的是在 LCD 面板上 24/7 全天候显示来自远程服务器的负载平均值和 RAM 使用情况等统计信息。我希望信息每 1-3 秒更新一次。

其他线程建议使用 SSH 命令检索信息。

    ssh root@192.168.1.252 uptime && cat /proc/meminfo 

使用 SSH 是否适合我的目的,我担心的是

  1. 我的日志文件可能因为所有的登录尝试而膨胀
  2. 每隔几秒钟设置和断开 SSH 连接的开销。

有没有这样的包,还是我必须自己编写代码?我更喜欢一个保持连接打开以减少开销的方法。我不需要加密,因为两台服务器都在 LAN 上。

提前致谢。

请您参考如下方法:

注意几点:

  1. 如果不需要,不要使用root。对于 uptimecat/proc/meminfo,您当然不需要 root。使用其他用户。
  2. 注意这两者的区别:

    ssh user@hostname uptime && cat /proc/meminfo 
    ssh user@hostname 'uptime && cat /proc/meminfo' 
    

    第一个将在您的本地计算机上执行 cat/proc/meminfo,第二个将在远程执行。我想你想使用第二个版本。 (你想要远程机器的 CPU 信息,而不是你的本地机器,是吗?)

您可以使用连接多路复用以一石二鸟:减少建立新连接的开销并避免污染服务器日志。为此,请在您的 ~/.ssh/config 文件中添加这样的配置:

Host somename 
User the_username 
Hostname the_hostname 
ControlMaster auto 
ControlPath ~/.ssh/master-somename 

您可以选择任何somename,它就像一个别名。使用此设置,您可以简单地连接到服务器:

ssh somename 

当此远程 session 仍然存在时(直到您注销),您可以从另一个终端打开新连接,它们将重用现有连接,绕过身份验证并有效消除新连接的开销。

这实际上是在使用速度较慢的远程服务器时的一个常见技巧,在这种情况下建立新连接是一项明显的开销。事实上,我使用此设置将其应用于我使用的所有远程服务器:

Host * 
ControlMaster auto 
ControlPath ~/.ssh/master-%r@%h:%p 

我通常recommend this trick for everyone .