将ssh用于机器并获取负载信息

时间:2017-05-25 20:36:27

标签: ssh

我有ssh访问~20台机器的列表。我需要在列表中找到所有这些的加载状态。该计划' top'在标题中提供有关机器状态的信息做得很好。

示例:

top - 13:29:53 up 107 days, 20:13, 47 users,  load average: 3.80, 3.74, 3.62
Tasks: 794 total,   2 running, 787 sleeping,   3 stopped,   2 zombie
Cpu(s):  2.6%us,  0.8%sy,  0.0%ni, 84.7%id, 11.9%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  99055876k total, 47947572k used, 51108304k free,   697684k buffers
Swap: 26148860k total, 17145136k used,  9003724k free, 35844820k cached

今天我手动对每台机器进行ssh,然后进行顶级'复制数据并存储它。我想知道这项任务是否可以实现自动化。我发现ssh可以选择将unix cmd作为要在远程计算机上执行的参数。但是如何从顶部'中捕获输出?或者是否有批次 - 也提供相同的标题输出?如果只有一个脚本可以帮助我,那就太棒了。

谢谢, 格特

1 个答案:

答案 0 :(得分:0)

对于Ubuntu:

[12:15 AM] borlaze@mac: /tmp $ ssh USER@HOST 'top -b -n 1 | head -n 5' >123.txt

[12:15 AM] borlaze@mac: /tmp $ cat 123.txt
top - 00:16:06 up 35 days, 10:58,  1 user,  load average: 0,34, 0,36, 0,29
Tasks: 277 total,   1 running, 274 sleeping,   0 stopped,   2 zombie
%Cpu(s):  7,1 us,  5,7 sy,  0,0 ni, 87,0 id,  0,1 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem : 24671340 total,  1066056 free, 12822724 used, 10782560 buff/cache
KiB Swap: 16756732 total, 16094308 free,   662424 used. 11208916 avail Mem