我希望使用a来压缩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
Run Code Online (Sandbox Code Playgroud)
我不想做的是:
top -u user | grep process_name
Run Code Online (Sandbox Code Playgroud)
要么
top -bp $(pgrep process_name) | do_something
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
注意:我在Ubuntu 12.04上,顶级版本是3.2.8.
top
如果您在批处理模式 ( ) 下运行-b -n1
,只需使用以下命令删除标题行sed
:
top -b -n1 | sed 1,7d
Run Code Online (Sandbox Code Playgroud)
top
这将删除仅输出和返回进程的前 7 个标题行。
它被称为“摘要区域”,我认为在初始化时没有办法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)
Run Code Online (Sandbox Code Playgroud)
今天遇到这个问题。我有一个潜在的解决方案 - 当摘要区域被禁用时,从顶部的交互模式中创建一个顶部配置文件。由于这个文件也是在批处理模式下在top启动时读取的,所以它也会导致在批处理模式下禁用摘要区域。
请按照以下步骤进行设置。
以交互模式启动 top。
进入交互模式后,依次按“l”、“m”和“t”禁用摘要区域。
按“W”(大写)写入顶级配置文件(通常为 ~/.toprc)
退出交互模式。
现在,当您以批处理模式运行 top 时,将不会出现摘要区域 (!)
再进一步...
如果您只需要在某些情况下使用它,并且大部分时间仍然需要摘要区域,则可以使用备用顶级配置文件。但是,AFAIK,让顶部使用备用配置文件的方式有点时髦。有几种方法可以做到这一点。我使用的方法如下:
创建指向顶级可执行文件的软链接。这不必以 root 身份完成,只要您对链接的位置具有写访问权限...
ln -s /usr/bin/top /home/myusername/bin/omgwtf
Run Code Online (Sandbox Code Playgroud)通过键入链接的名称 ('omgwtf') 而不是 'top' 来启动 top。您将处于正常的 top 交互模式,但是当您保存配置文件时,它将写入 ~/.omgwtfrc,而将 ~/.toprc 单独保留。
禁用汇总区并写入与之前相同的配置文件(按'l'、'm'、't'和'W')
将来,当您准备好在批处理模式下运行没有摘要信息的 top 时,您必须通过您创建的链接名称调用 top。例如,
% 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
%
Run Code Online (Sandbox Code Playgroud)