我的目的是在 LCD 面板上 24/7 全天候显示来自远程服务器的负载平均值和 RAM 使用情况等统计信息。我希望信息每 1-3 秒更新一次。
其他线程建议使用 SSH 命令检索信息。
ssh root@192.168.1.252 uptime && cat /proc/meminfo
使用 SSH 是否适合我的目的,我担心的是
- 我的日志文件可能因为所有的登录尝试而膨胀
- 每隔几秒钟设置和断开 SSH 连接的开销。
有没有这样的包,还是我必须自己编写代码?我更喜欢一个保持连接打开以减少开销的方法。我不需要加密,因为两台服务器都在 LAN 上。
提前致谢。
请您参考如下方法:
注意几点:
- 如果不需要,不要使用
root
。对于uptime
和cat/proc/meminfo
,您当然不需要root
。使用其他用户。 注意这两者的区别:
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