GNU/Linux >> Tutoriels Linux >  >> Linux

Est-il possible de formater la sortie ps RSS (mémoire) pour être plus conviviale pour l'homme?

ps ux | numfmt --header --to=iec --field 5,6 --padding 6

Vous avez besoin de coreutils>=8.25

Personnellement, je préfère celui-ci :

ps -eo pmem,comm,pid,maj_flt,min_flt,rss,vsz --sort -rss | numfmt --header --to=iec --field 4-5 | numfmt --header --from-unit=1024 --to=iec --field 6-7 | column -t | head

Il semble qu'il n'y ait pas d'indicateur approprié dans ps , vous devez donc soit utiliser un outil différent (personnellement, je préfère htop ) ou jouer avec ps sortie un peu. Je suppose que vous voulez vous en tenir à ps .Voici un petit script sale que j'ai fait comme exemple :

# get terminal width
WIDTH=`tput cols`
# pipe stdin to awk
cat | \
awk '\
BEGIN {
    # set output format
    CONVFMT="%.2f"
}
NR==1 {
    # search first line for columns that need to be converted from K to M
    for (i=1;i<=NF;i++) 
        # add condition for new columns if you want
        if ($i=="VSZ" || $i=="RSS") {
            # column numbers are stored in an array
            arr[i]=i; 
            $i = $i "(MB)"
        }
}
NR > 1 {
    # edit appropriate columns
    for (i in arr)
        $i=$i/1024; 
}
{
    # print every line
    print $0
}' | \
# format the output into columns and trim it to terminal width
column -t | cut -c 1-$WIDTH

Enregistrez-le dans un fichier, dites prettyps.sh , rendez-le exécutable :

chmod +x prettyps.sh

et utilisez comme suit :

ps ux | /path/to/prettyps.sh

L'utilisation de ce script a l'inconvénient d'ajouter des processus supplémentaires à la sortie de ps, mais cela fonctionne néanmoins :

$ ps ux | ./prettyps.sh
USER  PID   %CPU  %MEM  VSZ(MB)  RSS(MB) TTY    STAT  START  TIME   COMMAND
pono  2658  0.0   0.0   358.88   4.29    ?      Sl    02:33  0:00   /usr/bin/gnome-keyring
... output truncated...
pono  4507  0.0   0.0   19.14    1.81    pts/1  S+    03:29  0:00   man                   
pono  4518  0.0   0.0   10.55    0.96    pts/1  S+    03:29  0:00   pager                 
pono  4727  0.7   0.9   1143.59  53.08   ?      Ssl   04:10  0:24   /opt/sublime_text/subl
pono  4742  0.1   0.4   339.05   25.80   ?      Sl    04:10  0:03   /opt/sublime_text/plug
pono  5177  0.0   0.0   19.23    1.32    pts/0  R+    05:05  0:00   ps                    
pono  5178  0.0   0.0   4.34     0.61    pts/0  S+    05:05  0:00   /bin/sh 

J'espère que cela vous aidera à trouver un moyen qui vous convient.


Linux
  1. Afficher la sortie de la commande ou le contenu du fichier au format colonne

  2. Rendez la sortie de du plus utile avec cette astuce

  3. Convertir la sortie de la commande Tree au format Json ?

  4. Comment accéder (si possible) à l'espace noyau depuis l'espace utilisateur ?

  5. ss - format de sortie de l'utilitaire de statistiques de socket Linux

Afficher la sortie de la commande Ping au format graphique à l'aide de Gping

Linux - Changer le format de la sortie de trace d'événement Syscall en Ftrace ?

Comment afficher la taille du fichier au format lisible par l'homme (Ko, Mo, Go) dans le terminal Linux

Déterminer correctement l'utilisation de la mémoire sous Linux

Linux :comment déséchanger explicitement tout ce qui est possible ?

Comment lire les messages syslog oom-killer ?