Como eu faria este script bash que exibe certos recursos relacionados ao processo do sistema?

1

Basicamente eu preciso fazer um script bash que atua como uma ferramenta útil para diagnosticar problemas de desempenho. O script precisa primeiro determinar cada proprietário de processo exclusivo no sistema e, em seguida, para cada usuário que possui processos atuais no sistema, ele precisa:

  • Determine o número de processos pertencentes a esse usuário
  • Determine a soma de memória para todos os processos pertencentes a esse usuário (SZ)
  • Determine a soma do uso atual da CPU para todos os processos pertencentes a esse usuário (C)
  • Determine o tempo cumulativo (TIME) e o nome do processo (CMD) do processo com o tempo acumulado mais alto que pertence a esse usuário (Hog: process)

Eu acho que o primeiro passo seria determinar todos os proprietários de processos exclusivos no sistema e, em seguida, percorrer cada um deles?

    
por John Stacen 04.12.2013 / 08:47

1 resposta

0

Se você quiser dar uma rápida olhada nos processos, use top e leia a man page para aprender a classificar por várias colunas

Para encontrar a maioria das informações que você deseja:

ps ax -o user,sz,pcpu | 
awk '
    NR>1 {n[$1]++; sz[$1]+=$2; cpu[$1]+=$3}
    END {
        for (user in n) 
            printf "%-8s  %4d  %12d  %.1f\n", user, n[user], sz[user], cpu[user]
    }
'
    
por glenn jackman 04.12.2013 / 15:07