有没有一个select的Linux top命令,我可以按名称过滤进程?
例如,我只想监视python进程(有几个),我想要做一些像top -option "python"东西。
当你需要进程的信息时,答案总是ps
这很简单,但它有一个荒谬的select。
试试这个:
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
应该给你的前10名,由CPU使用。
这近似于top的输出:
watch 'ps axo pid,user,pri,nice,vsz,rsz,size,s,pcpu,pmem,time,cmd|grep "[p]ython\|PID USER"'
你总是可以做“顶部| greppython”,但我假设你想要更dynamic的东西
我的Perl技巧是基础知识,但要得到一个名字过滤的真正的顶部,保存这个代码到一个名为topn.pl的文件:
#!/usr/bin/perl shift @ARGV; $name = shift @ARGV; @pids = `/bin/ps -eo pid,user,args | /bin/grep $name | /bin/grep -v grep | /usr/bin/tr -s " " `; $arg = ""; foreach (@pids) { $_ =~ /^\s([0-9]+)\s/; $pid = $1; $arg .= " p $pid " if $pid != ""; } exec("/usr/bin/top $arg @ARGV");
用法: topn.pl -n FOO c 2其中FOO是进程名称是grep。 其余的parameter passing到顶部。
顶部接受最多20个PID作为参数。