限制 top 命令只在命令行显示前 X 个进程
Limit top command to only display top X processes on command line
我不确定为什么 top
命令中没有执行此操作的选项,因为这似乎是一个自然的请求。
如果我将 top
的输出通过管道传输到 head
,则列表不会更新并且我得到一次静态输出。然后我可以将 watch
命令付诸行动,这将完成这项工作。但是,有更简单的解决方案吗?
> top
然后,按 n
设置显示的最大任务数。
操作top时,最重要的一个键是help(h
或?
)查看可用的选项(n
在help中给出)
更新(评论后):
PERSONAL Configuration File
可能有助于批处理模式。 运行 top
然后使用 n
设置显示的最大任务并使用 W
交互式命令创建或更新配置文件。 top
下次根据配置文件运行
我用了一个技巧,专门针对批处理模式。我使用选项“-A”将出口管道传输到 grep,以在匹配后显示 N 行。
因为在顶部的第一行有这样的东西:"load average",我 grep 那个,例如:
$ top -d 5 -b|grep "load average" -A 15
top - 09:42:34 up 38 min, 1 user, load average: 0.22, 0.39, 0.53
Tasks: 294 total, 2 running, 291 sleeping, 0 stopped, 1 zombie
%Cpu(s): 3.5 us, 0.9 sy, 0.0 ni, 94.6 id, 0.5 wa, 0.3 hi, 0.1 si, 0.0 st
KiB Mem : 8065144 total, 2213800 free, 2733524 used, 3117820 buff/cache
KiB Swap: 24575996 total, 24575996 free, 0 used. 4613128 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2744 lrojas 20 0 3376820 752000 116588 R 20.2 9.3 9:30.01 firefox
1869 lrojas 9 -11 566164 18336 14300 S 5.2 0.2 2:35.78 pulseaudio
2401 lrojas 20 0 740092 200456 87256 S 2.4 2.5 0:57.29 skype
2402 lrojas 20 0 617872 172924 76172 S 2.2 2.1 0:57.17 skype
1333 root 20 0 459028 60992 48024 S 1.6 0.8 0:36.14 Xorg
1838 lrojas 20 0 2103336 184468 64724 S 1.4 2.3 0:56.85 gnome-shell
2359 lrojas 20 0 741212 35068 24620 S 1.4 0.4 0:06.83 gnome-terminal-
2404 lrojas 20 0 1867556 229912 83988 S 0.8 2.9 0:19.63 thunderbird
1249 apache 20 0 461436 10196 3404 S 0.4 0.1 0:00.57 httpd
这样它将以批处理模式继续,始终只显示前 N 行输出。
完全标准的解决方案,适用于任何版本的 top。
也许您应该添加 -b
以批处理模式运行 top
的参数:watch -n 5 'top -b -d 5 | head -n 10'
你可以为top制作配置文件(例如:运行交互模式下的top命令,然后按“n”并写入进程数限制,然后按“W”将其保存在你的配置文件)。
下一步,您可以运行批量置顶;配置文件中的参数将输出限制为请求的值。所以,那么简单:
top -b > top.log
就够了。
MAC的解决方案是:
top -a -n20 | awk 'FNR>=11 && FNR<=31{print [=10=]};FNR==31{exit}' > cpustat.txt
我不确定为什么 top
命令中没有执行此操作的选项,因为这似乎是一个自然的请求。
如果我将 top
的输出通过管道传输到 head
,则列表不会更新并且我得到一次静态输出。然后我可以将 watch
命令付诸行动,这将完成这项工作。但是,有更简单的解决方案吗?
> top
然后,按 n
设置显示的最大任务数。
操作top时,最重要的一个键是help(h
或?
)查看可用的选项(n
在help中给出)
更新(评论后):
PERSONAL Configuration File
可能有助于批处理模式。 运行 top
然后使用 n
设置显示的最大任务并使用 W
交互式命令创建或更新配置文件。 top
下次根据配置文件运行
我用了一个技巧,专门针对批处理模式。我使用选项“-A”将出口管道传输到 grep,以在匹配后显示 N 行。
因为在顶部的第一行有这样的东西:"load average",我 grep 那个,例如:
$ top -d 5 -b|grep "load average" -A 15
top - 09:42:34 up 38 min, 1 user, load average: 0.22, 0.39, 0.53
Tasks: 294 total, 2 running, 291 sleeping, 0 stopped, 1 zombie
%Cpu(s): 3.5 us, 0.9 sy, 0.0 ni, 94.6 id, 0.5 wa, 0.3 hi, 0.1 si, 0.0 st
KiB Mem : 8065144 total, 2213800 free, 2733524 used, 3117820 buff/cache
KiB Swap: 24575996 total, 24575996 free, 0 used. 4613128 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2744 lrojas 20 0 3376820 752000 116588 R 20.2 9.3 9:30.01 firefox
1869 lrojas 9 -11 566164 18336 14300 S 5.2 0.2 2:35.78 pulseaudio
2401 lrojas 20 0 740092 200456 87256 S 2.4 2.5 0:57.29 skype
2402 lrojas 20 0 617872 172924 76172 S 2.2 2.1 0:57.17 skype
1333 root 20 0 459028 60992 48024 S 1.6 0.8 0:36.14 Xorg
1838 lrojas 20 0 2103336 184468 64724 S 1.4 2.3 0:56.85 gnome-shell
2359 lrojas 20 0 741212 35068 24620 S 1.4 0.4 0:06.83 gnome-terminal-
2404 lrojas 20 0 1867556 229912 83988 S 0.8 2.9 0:19.63 thunderbird
1249 apache 20 0 461436 10196 3404 S 0.4 0.1 0:00.57 httpd
这样它将以批处理模式继续,始终只显示前 N 行输出。
完全标准的解决方案,适用于任何版本的 top。
也许您应该添加 -b
以批处理模式运行 top
的参数:watch -n 5 'top -b -d 5 | head -n 10'
你可以为top制作配置文件(例如:运行交互模式下的top命令,然后按“n”并写入进程数限制,然后按“W”将其保存在你的配置文件)。
下一步,您可以运行批量置顶;配置文件中的参数将输出限制为请求的值。所以,那么简单:
top -b > top.log
就够了。
MAC的解决方案是:
top -a -n20 | awk 'FNR>=11 && FNR<=31{print [=10=]};FNR==31{exit}' > cpustat.txt