Neuromancer Asked: 2019-05-31 10:27:30 +0800 CST2019-05-31 10:27:30 +0800 CST 2019-05-31 10:27:30 +0800 CST 以批处理模式应用顶级过滤器 772 我可以应用我想要的过滤器交互模式(通过按 o)。有没有办法以批处理模式获取这些。 我正在使用 procps-ng 版本 3.3.10。谢谢你。 linux centos-7 1 个回答 Voted Best Answer Hiatsu 2019-06-07T14:25:52+08:002019-06-07T14:25:52+08:00 根据手册页,-p命令行选项可用于限制哪些进程top读取。它似乎不允许完全像在交互模式下那样进行过滤,但您可以通过检查ps. 示例,仅采用具有三个以上线程的进程: $ ps -eLf | awk '$6 ~ /^[0-9]+$/ { if ($6 > 3) { print $2; } }' | sort -u 在我的电脑上,这会打印出所有相关进程的列表,每行一个。ps生成进程详细信息列表,awk命令过滤它们,sort只删除重复项。 ps为了您的使用,请检查您将需要哪些列。在我的电脑上,线程数(“NLWP”)是第六列($6),进程 ID(“PID”)是第二列($2)。根据需要在命令中调整这些awk以匹配您需要的过滤器。请注意它$6出现了两次:第一次确保它是一个数字而不是标题,第二次确保它大于 3。 运行此命令后,必须将进程 ID 提供给top. Bash 和可能的其他 shell 允许将程序的输出作为参数传递给另一个程序,因此最终命令可能是 $ top $(ps -eLf | awk '$6 ~ /^[0-9]+$/ { if ($6 > 3) { print "-p"$2; } }' | sort -u) ... And other options "-p"添加以使输出与top. 根据需要调整此命令以适合您的过滤器和外壳,将其放入您的批处理中,它应该可以工作。 注意:添加更多过滤器可能需要学习 awk。这不是太难。
根据手册页,
-p
命令行选项可用于限制哪些进程top
读取。它似乎不允许完全像在交互模式下那样进行过滤,但您可以通过检查ps
.示例,仅采用具有三个以上线程的进程:
在我的电脑上,这会打印出所有相关进程的列表,每行一个。
ps
生成进程详细信息列表,awk
命令过滤它们,sort
只删除重复项。ps
为了您的使用,请检查您将需要哪些列。在我的电脑上,线程数(“NLWP”)是第六列($6
),进程 ID(“PID”)是第二列($2
)。根据需要在命令中调整这些awk
以匹配您需要的过滤器。请注意它$6
出现了两次:第一次确保它是一个数字而不是标题,第二次确保它大于 3。运行此命令后,必须将进程 ID 提供给
top
. Bash 和可能的其他 shell 允许将程序的输出作为参数传递给另一个程序,因此最终命令可能是"-p"
添加以使输出与top
. 根据需要调整此命令以适合您的过滤器和外壳,将其放入您的批处理中,它应该可以工作。注意:添加更多过滤器可能需要学习 awk。这不是太难。