【问题标题】:getting specific mem and cpu values from linux machine从 linux 机器获取特定的 mem 和 cpu 值
【发布时间】:2017-06-26 09:13:54
【问题描述】:

我有这个脚本:

echo $(date +%F-%H%M ) $( top -n 1 -b -c -p $ZK_PID,$KAFKA_PID,$AGENT_PID,$ENGINE_PID | tail -n 1) >> `hostname`_top.log

产生以下输出:

top - 06:32:15 up 7 days, 21:22,  2 users,  load average: 1.71, 1.66, 1.66
Tasks:   3 total,   0 running,   3 sleeping,   0 stopped,   0 zombie
%Cpu(s): 22.8 us, 15.9 sy,  0.0 ni, 61.1 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem : 14360876 total,   191296 free, 10837496 used,  3332084 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  3066536 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 48721 equalum   20   0 12.828g 1.214g   6756 S   3.0  8.9   2176:15 /usr/lib/+
 52019 equalum   20   0 5809096 1.436g   5392 S   1.3 10.5 450:51.78 java -Dna+
 48411 equalum   20   0 4150868 403536   4992 S   0.0  2.8   3:56.87 /usr/lib/+

我试图只获取这些进程的 %CPU 和 %MEM 值,我该怎么做?

【问题讨论】:

  • 您可以使用awkcut 解析列,或者您可以使用Python 获得更强大、独立于平台的方法(请参阅psutil)。

标签: linux process


【解决方案1】:

尝试在你的脚本代码之后添加这个

| grep '%CPU|%MEM' 

【讨论】:

  • 我试过这个:top -n 1 -b -c -p 48721 |尾-n 1 | awk '{print $9 $10}' 产生以下输出: 6.78.9 这些是 2 个值 6.7 和 8.9 ,我想在它们之间添加空格,这可能吗?
  • 试试 top -n 1 -b -c -p 48721 |尾-n 1 | awk '{打印 $9 " " $10}'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
  • 2012-04-15
相关资源
最近更新 更多