3 votes

Surveillance des processus linux

Existe-t-il une option pour linux ? top où je peux filtrer les processus par nom ?

Par exemple, je ne veux surveiller que les processus Python (il y en a plusieurs), et j'aimerais faire quelque chose comme top -option "python" ou quelque chose comme ça.

6voto

Matthieu Riegler Points 20160

Lorsque vous souhaitez obtenir des informations sur les processus, la réponse est toujours la suivante ps

Il est simple, et pourtant il offre un nombre ridicule d'options.

Essayez celui-ci :

ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10

Cela devrait vous donner les 10 premiers, par utilisation du processeur.

2voto

jason saldo Points 5036

Cela correspond approximativement à la sortie de top :

watch 'ps axo pid,user,pri,nice,vsz,rsz,size,s,pcpu,pmem,time,cmd|grep "[p]ython\|PID USER"'

0voto

Alex Points 23

Vous pouvez toujours faire "top | grep Python", mais je suppose que vous voulez quelque chose de plus dynamique.

0voto

AyKarsi Points 241

Mes compétences en Perl sont basiques, mais pour obtenir un vrai Top filtré par nom, enregistrez ce code dans un fichier appelé 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");

Utilisation : topn.pl -n FOO c 2 où FOO est le nom du processus à greper. Le reste des arguments est transmis à top.

Top accepte au maximum 20 PID comme arguments.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X