LINUX.ORG.RU
решено ФорумAdmin

Bash скрипт который выведет top 15 процессов

 ,


1

1

Всем здрасьте. Прошу помощи ибо на текущий момент нехватает знаний. Нужно написать bash скрип, который выведет top 15 процессов, потребляющие больше всего резидентной памяти в системе, используя стандартные утилиты linux. Значение памяти вывести в «human» виде (G, M, K), округлить до первого знака.

Я смог только вывести топ 15 процессов по резидентной памяти, но не пойму как представить значения в виде G M K top -o RES -b -n 1|head -n 22|tail -15 Спасибо за помощью

Нужно написать bash скрип

Не совсем, Фаррух, нужно научиться это делать. Рад, что Вы озаботились выполнением задания не в последнюю ночь, но все же, самостоятельность выполнения — ключ к приобретению необходимых навыков.

t184256 ★★★★★
()

Достаточно ps, tail, numfmt.

      90MB nm-applet
      93MB syncthing
      98MB emacs
      99MB keepassxc
     160MB Web Content
     168MB Web Content
     182MB Web Content
     184MB Web Content
     190MB Xorg
     203MB Web Content
     230MB Web Content
     237MB WebExtensions
     241MB Web Content
     252MB Web Content
     627MB firefox
knd
()
Ответ на: комментарий от knd

Bash скрипт.

Соглашусь с вами. Я склоняюсь, к тому,что всего знать нельзя)) Не сегодня так завтра писанина сприктов появиться в лучшей форме, просто требуется больше работы с ними. Конечно не в последнюю ночь. В какой то степени сам и его решил. Вот утилитка numfmt в голову не пришла. Спасибо

Farik7707
() автор топика
Ответ на: комментарий от knd

в чем смысл ключа.

По сути эти два ключа необязательно писать. ключ –format=‘%10f’ такой же эффект дает как и –Padding=6 Спасибо за подсказку утилиты numftm.

Farik7707
() автор топика
Ответ на: комментарий от qtm

не стесняюсь спросить.

Мне разницы нет, кто сидит на форуме. Я открыто могу сказать, что мне вообще не стыдно, что я спросил. Чего не знаю, то спрашиваю и дальше читаю про это.

Farik7707
() автор топика
Ответ на: комментарий от knd

Занятная штука этот numfmt, как Мы раньше на него натыкались o_O

Но вот подскажите, поддерживает ли он корреляцию между входными числами, чтобы они выводились в едином формате?

Вот простой пример:

$ echo -e '4327987987\n89423889'|numfmt --to=iec
4,1G
86M

А хорошо бы, чтобы были 4,1G и 0.09G.

У Нас есть скрипт, предназначенный для вывода на боковую панель. Там каждый символ по ширине дорог, поэтому буква выводится только одна. Сейчас там самописный негибкий вывод — а надо бы, например, для трафика перебирать M или G. Мы начали потихоньку переписывать его на Rust, но это долгострой. Нельзя ли в numfmt ключиками такого добиться, чтобы портянку не городить?

mertvoprog
()
Ответ на: комментарий от mertvoprog

Встречный вопрос, а для чего нужен в таком случае numfmt? Достаточно, например, использовать awk.

echo -e '4327987987\n89423889'  | awk '{printf "%.2fG\n", $1/1000^3}'
4.33G
0.09G

А насчет

для трафика перебирать M или G

противоречит

А хорошо бы, чтобы были 4,1G и 0.09G

потому что исходя из удобства восприятия, на основании которого numfmt и подобные утилиты формируют вывод в человекочитаемом виде, 0,09G воспринимается хуже, чем 86M.

Но если нужно, то и это вполне реализуемо на awk, нужно только задать условие, в каких случаях нужны ме(га)(би)байты, а в каких ги(га)(би)байты.

knd
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.