J'essaie de faire une petite commande qui trouvera les processus qui utilisent le plus de puissance CPU.
Tout d'abord, j'utilise ps aux > file.txt
et ensuite cut -c 16-20 file.txt | sort -n | tail -5
.
Le résultat que j'obtiens est le suivant:
1.0
2.7
8.
14.5
14.5
Donc, ma question est de savoir comment puis-je produire à la fois l' %CPU
utilisation et les autres champs?
bash
shell-script
sort
ps
Spyros Chiotakis
la source
la source
top
place?awk
. Ensuite, lorsque vous êtes prêt à déplacer les choses "en production", vous devez utilisertop
en mode batch si cela convient à vos besoins.file.txt
en faisantps aux|cut -c ...
Réponses:
La bonne réponse est:
Pour le top 5:
Vous pouvez donc spécifier des colonnes sans interférer avec le tri.
Ex:
Note de 'ckujau':
--sort
est supporté parps
fromprocps
, d'autres implémentations peuvent ne pas avoir cette option.la source
--sort
est uniquement pris en charge parps
d'procps
autres implémentations ne peut pas avoir cette option.Trier sur le champ approprié (défini par défaut comme transition espace blanc vers espace non blanc), dans mon cas c'est le 3ème:
la source
ps
la--sort
possibilité.Un inconvénient de la solution acceptée est que les en-têtes des différentes colonnes seront inclus dans la sortie. Un autre problème est que lorsque vous utilisez le commutateur
-x
pourps
qu'il fournira les lignes complètes de commande pour certains programmes, qui peuvent fonctionner et devenir une nuisance dans la sortie.Par exemple
Lignes de commande ennuyeuses
Chrome en particulier peut être assez ennuyeux lorsque l'on regarde une
ps
sortie comme celle-ci!En-têtes en sortie
Vous pouvez voir l'en-tête mélangé à la 7e ligne dans la sortie.
Alternatives
Se débarrasser des en-têtes
ps
fournit un commutateur pour désactiver l'affichage de ces en-têtes de colonne. C'est assez facile à utiliser, ajoutez simplement le--no-heading
commutateur.Ou comme ça:
Prenez le contrôle des colonnes affichées.
Cela peut sembler pénible, mais si vous scriptez la capture de
ps
sortie, ce n'est pas trop mal. Une commande comme celle-ci imitera la sortie deps aux
, sauf pour remplacer la forme plus longue de laCOMMAND
colonne par une version plus courte qui montre simplement le nom de l'exécutable.En rassemblant le tout sans les en-têtes de colonne, il est beaucoup plus facile de gérer les scripts.
Liste des processus CPU% les plus élevés au plus bas:
Liste des processus CPU% du plus bas au plus élevé:
la source