Как бы я сделал этот сценарий bash, который отображает определенные функции, связанные с системными процессами?

По сути, мне нужно создать bash-скрипт, который будет удобным инструментом для диагностики проблем с производительностью. Сценарий должен сначала определить каждого уникального владельца процесса в системе, а затем для каждого пользователя, который имеет текущие процессы в системе, он должен:

  • Определить количество процессов, принадлежащих этому пользователю
  • Определить сумму памяти для всех процессов, принадлежащих этому пользователю (SZ)
  • Определить сумму текущего использования ЦП для всех процессов, принадлежащих этому пользователю (C)
  • Определить совокупное время (TIME) и имя процесса (CMD) процесса с наибольшим совокупным временем, принадлежащим этому пользователю (Hog: process)

Я полагаю, что первым шагом будет определение всех уникальных владельцев процессов в системе, а затем циклически проходить через каждого?

1
задан 4 December 2013 в 11:47

1 ответ

Если вы хотите быстро взглянуть на процессы, используйте top и прочитайте справочную страницу, чтобы узнать, как сортировать по различным столбцам

Чтобы найти (большую часть) информация, которую вы хотите:

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]
    }
'
0
ответ дан 4 December 2013 в 11:47

Другие вопросы по тегам:

Похожие вопросы: