如何抑制top命令的一般信息
How to suppress the general information for top command
我想抑制top命令的一般信息
使用 top parameter
.
一般信息是指以下内容:
top - 09:35:05 up 3:26, 2 users, load average: 0.29, 0.22, 0.21
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.3%us, 0.7%sy, 0.0%ni, 96.3%id, 0.8%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3840932k total, 2687880k used, 1153052k free, 88380k buffers
Swap: 3998716k total, 0k used, 3998716k free, 987076k cached
我不想做的是:
top -u user | grep process_name
或
top -bp $(pgrep process_name) | do_something
我怎样才能做到这一点?
注意:我在 Ubuntu 12.04 上,最高版本是 3.2.8。
它被称为 "Summary Area",我认为在 top
初始化时没有办法禁用它们。
但是当 top
是 运行 时,您可以通过按 l、t、m.
来自 man top
:
Summary-Area-defaults
'l' - Load Avg/Uptime On (thus program name)
't' - Task/Cpu states On (1+1 lines, see '1')
'm' - Mem/Swap usage On (2 lines worth)
'1' - Single Cpu On (thus 1 line if smp)
这将转储输出,并且可以根据需要将其重定向到任何文件。
top -n1 |grep -Ev "Tasks:|Cpu(s):|Swap:|Mem:"
今天遇到这个问题。我有一个潜在的解决方案——当摘要区域被禁用时,从顶部的交互模式中创建一个顶部配置文件。由于这个文件在top以批处理模式启动时也会被读取,所以它会导致摘要区域在批处理模式下也被禁用。
按照以下步骤进行设置..
以交互模式启动顶部。
进入交互模式后,依次按 'l'、'm' 和 't'、
禁用摘要区域
按'W'(大写)写你的top配置文件(一般是~/.toprc)
退出交互模式。
现在,当您 运行 在批处理模式中置顶时,摘要区域将不会出现 (!)
更进一步...
如果您只在某些情况下需要这个并且大多数时候仍然需要摘要区域,您可以使用备用顶级配置文件。然而,据我所知,使用备用配置文件的方式有点古怪。有几种方法可以做到这一点。我使用的方法如下:
创建一个soft-link到顶层可执行文件。只要您对 link 的位置具有写入权限...
就不必以 root 身份执行此操作
ln -s /usr/bin/top /home/myusername/bin/omgwtf
通过键入 link ('omgwtf') 的名称而不是 'top' 来启动顶部。您将处于正常的顶部交互模式,但是当您保存配置文件时,它将写入 ~/.omgwtfrc,单独保留 ~/.toprc。
禁用摘要区域并像以前一样写入配置文件(按'l'、'm'、't'和'W')
将来,当您准备好在批处理模式下 运行 没有摘要信息的顶部时,您将必须通过您创建的 link 名称调用顶部。例如,
% omgwtf -usyslog -bn1
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
576 syslog 20 0 264496 8144 1352 S 0.0 0.1 0:03.66 rsyslogd
%
egrep
在这种情况下可能已经足够好了,但我要补充一点 perl -lane
可以以闪电般的速度完成这种事情:
top -b -n 1 | perl -lane '/PID/ and $x=1; $x and print' | head -n10
这样您可能会永远忘记 grep、sed、awk 等的精确参数,因为 perl 通常比那些工具快得多。
要监视特定进程,以下命令对我有用 -
top -sbn1 -p $(pidof <process_name>) | grep $(pidof <process_name>)
要获取所有进程信息,您可以使用以下命令 -
top -sbn1|sed -n '/PID/,/^$/p'
如果您 运行 top
处于批处理模式 (-b -n1
),只需删除带有 sed
:[=15= 的 header 行]
top -b -n1 | sed 1,7d
这将删除 top
输出的前 7 header 行,并且 returns 仅删除进程。
在 mac 上,您不能使用许多其他答案中使用的 -b
。
在那种情况下,命令将是 top -n1 -l1 | sed 1,10d
只抓取第一条进程线(及其header),只记录一次,而不是交互,然后抑制前 10 行的 top 命令的一般信息。
我想抑制top命令的一般信息
使用 top parameter
.
一般信息是指以下内容:
top - 09:35:05 up 3:26, 2 users, load average: 0.29, 0.22, 0.21
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.3%us, 0.7%sy, 0.0%ni, 96.3%id, 0.8%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3840932k total, 2687880k used, 1153052k free, 88380k buffers
Swap: 3998716k total, 0k used, 3998716k free, 987076k cached
我不想做的是:
top -u user | grep process_name
或
top -bp $(pgrep process_name) | do_something
我怎样才能做到这一点?
注意:我在 Ubuntu 12.04 上,最高版本是 3.2.8。
它被称为 "Summary Area",我认为在 top
初始化时没有办法禁用它们。
但是当 top
是 运行 时,您可以通过按 l、t、m.
来自 man top
:
Summary-Area-defaults
'l' - Load Avg/Uptime On (thus program name)
't' - Task/Cpu states On (1+1 lines, see '1')
'm' - Mem/Swap usage On (2 lines worth)
'1' - Single Cpu On (thus 1 line if smp)
这将转储输出,并且可以根据需要将其重定向到任何文件。
top -n1 |grep -Ev "Tasks:|Cpu(s):|Swap:|Mem:"
今天遇到这个问题。我有一个潜在的解决方案——当摘要区域被禁用时,从顶部的交互模式中创建一个顶部配置文件。由于这个文件在top以批处理模式启动时也会被读取,所以它会导致摘要区域在批处理模式下也被禁用。
按照以下步骤进行设置..
以交互模式启动顶部。
进入交互模式后,依次按 'l'、'm' 和 't'、
禁用摘要区域
按'W'(大写)写你的top配置文件(一般是~/.toprc)
退出交互模式。
现在,当您 运行 在批处理模式中置顶时,摘要区域将不会出现 (!)
更进一步...
如果您只在某些情况下需要这个并且大多数时候仍然需要摘要区域,您可以使用备用顶级配置文件。然而,据我所知,使用备用配置文件的方式有点古怪。有几种方法可以做到这一点。我使用的方法如下:
创建一个soft-link到顶层可执行文件。只要您对 link 的位置具有写入权限...
就不必以 root 身份执行此操作ln -s /usr/bin/top /home/myusername/bin/omgwtf
通过键入 link ('omgwtf') 的名称而不是 'top' 来启动顶部。您将处于正常的顶部交互模式,但是当您保存配置文件时,它将写入 ~/.omgwtfrc,单独保留 ~/.toprc。
禁用摘要区域并像以前一样写入配置文件(按'l'、'm'、't'和'W')
将来,当您准备好在批处理模式下 运行 没有摘要信息的顶部时,您将必须通过您创建的 link 名称调用顶部。例如,
% omgwtf -usyslog -bn1
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
576 syslog 20 0 264496 8144 1352 S 0.0 0.1 0:03.66 rsyslogd
%
egrep
在这种情况下可能已经足够好了,但我要补充一点 perl -lane
可以以闪电般的速度完成这种事情:
top -b -n 1 | perl -lane '/PID/ and $x=1; $x and print' | head -n10
这样您可能会永远忘记 grep、sed、awk 等的精确参数,因为 perl 通常比那些工具快得多。
要监视特定进程,以下命令对我有用 -
top -sbn1 -p $(pidof <process_name>) | grep $(pidof <process_name>)
要获取所有进程信息,您可以使用以下命令 -
top -sbn1|sed -n '/PID/,/^$/p'
如果您 运行 top
处于批处理模式 (-b -n1
),只需删除带有 sed
:[=15= 的 header 行]
top -b -n1 | sed 1,7d
这将删除 top
输出的前 7 header 行,并且 returns 仅删除进程。
在 mac 上,您不能使用许多其他答案中使用的 -b
。
在那种情况下,命令将是 top -n1 -l1 | sed 1,10d
只抓取第一条进程线(及其header),只记录一次,而不是交互,然后抑制前 10 行的 top 命令的一般信息。