Почему корневые процессы не сортируются, когда я пытаюсь отсортировать пользователей по количеству запущенных процессов?

В настоящее время я работаю в удаленной среде, где я хотел бы отсортировать количество пользователей, использующих наибольшее количество процессов с помощью команды ps. Единственная проблема: с моей текущей командой; не отображается пользователь root, который должен отображаться. Первый результат - это то, что я ищу, второй - то, что я сейчас получаю.

157 root
 12 apache
 11 brun1992
  4 bb
  2 postfix
  2 hart4492
  2 68
  1 USER
  1 sshd
  1 rpcuser

МОЯ КОМАНДА:

 ps -eo user=|sort|uniq -c | head -n 10 | sort -r $1
         9 apache
         6 au6620
         5 ande7941
         4 cwen4344
         4 bb
         3 dagg9715
         2 evan8561
         2 brun1992
         2 alki2221
         1 dbus
0
28.02.2017, 23:37
2 ответа

Это будет работать:

ps -eo user|sort|uniq -c|sort -gr

sort -gr - ключ к этому.

-g: числовая сортировка.

2
28.01.2020, 02:34

Проблема в том, что у вас голова перед сортировкой. Я думаю, вы пытаетесь найти десять наиболее часто используемых имен пользователей. Во-первых, как говорит @ rakesh-n, вам нужно отсортировать численно.

Но проблема в том, что вы получаете список из uniq, который отсортирован по имени пользователя, затем вы берете первую десятку и только после этого сортируете по количеству. Взгляните на свой пример и обратите внимание, что все имена пользователей начинаются с a-e

ps -eo user = | sort | uniq -c | sort -r $ 1 | head -n 10

0
28.01.2020, 02:34

Теги

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