我有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作为要在远程计算机上执行的参数。但是如何从顶部'中捕获输出?或者是否有批次 - 也提供相同的标题输出?如果只有一个脚本可以帮助我,那就太棒了。
谢谢, 格特
答案 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