process Contagem de cada usuário no comando ps aux

6

Como posso criar um script para contar o processo executado por cada usuário em ps aux . Eu usei isso

ps aux  | awk '{print $1}' | grep root | wc -l

mas lista apenas o número de usuários root. Eu quero listar o número de processos para cada usuário. Eu preciso de algo assim:

root    20
jamshi  15 
    
por Jamsheer P 29.08.2015 / 13:50

2 respostas

9

ps -fo user | sort | uniq -c vale a pena tentar

O comando ps -eo user=|sort|uniq -c listará as contagens de processos por usuário.

ps -eo user=|sort|uniq -c
      2 avahi
      1 kernoops
      1 messagebus
      1 nobody
    231 root
      1 statd
      5 steve
      1 syslog

Se for necessário inverter a ordem das colunas, envie-a por meio de awk '{ print $2 " " $1 }'

    
por 29.08.2015 / 13:55
3

Você pode tentar

ps aux |
awk 'NR>1{tot[$1]++;}
     END{for(id in tot)printf "%s %s\n",id,tot[id]}'
    
por 29.08.2015 / 14:53