Один вкладиш для відображення використання процесора, оперативної пам’яті та жорсткого диска


15

Я бачив декілька публікацій, які хочуть того ж, що стосується використання, проте відповіді ЗАВЖДИ стосуються встановлення якогось стороннього інструменту.

Я не хочу нічого встановлювати.

Будь-які лайнери? Наступне було б чудовим результатом:

CPU 11% RAM 20% HDD 85%

Чи відсоток використання жорсткого диска наскільки він наповнений або наскільки він зайнятий?
Байт-командир

@ByteCommander обидва? :) На серйозну ноту, ємність, хоча. Як би обоє, це було б добре.
Карл Моррісон

Зітхніть .......: - /
Байт командир

@ByteCommander Під потужністю я маю на увазі "наскільки повно", якщо мені не було зрозуміло :)
Карл Моррісон

Відповіді:


29

Ви можете використовувати це

echo "CPU `LC_ALL=C top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'`% RAM `free -m | awk '/Mem:/ { printf("%3.1f%%", $3/$2*100) }'` HDD `df -h / | awk '/\// {print $(NF-1)}'`"

Вихід є

CPU 7.4% RAM 33.9% HDD 94%

2
Частина HD буде смоктати, якщо у вас багато розділів.
coteyr

1
df -h /частина командного рядка показує статистику про /розділ. Ви можете повторити df -hкоманду та заміну /пунктом монтування, який потрібно контролювати.
MKay

1
Не працює для мене. Процесор завжди 91%, я не маю уявлення, звідки це береться. // І оперативна пам'ять включає буфери та кеш-пам'ять, завдяки чому вона виглядає вичерпаною. Я використовую 97,8% оперативної пам'яті, але все ще є 67,5% безкоштовно.
Оскар скаго

2
@OskarSkog У тебе topвсе гаразд. Використання процесора неможливо виміряти в поточний момент часу, його потрібно виміряти за короткий проміжок часу. Коли topвиконується перша ітерація, вона показує середнє використання за останній перезавантаження. Починаючи з другої ітерації, вона показує фактичне поточне використання з попередньої ітерації. І якщо у вас є проблеми з локалізацією, ви можете поставити LC_ALL=Cперед командою використання англійської локалізації за замовчуванням (формати чисел тощо, а не мова).
Байт-командир

2
@MKay: Ви можете замінити top -bn1 | grep "Cpu(s)"на top -bn2 | grep "Cpu(s)" | tail -n1. Перший покаже середньостроковий показник, як вказував Байт Командор.
Оскар скаго

7

Для використання процесора (в середньому (user+system)/(user+system+idle)за 0,1 секунди):

(grep 'cpu ' /proc/stat;sleep 0.1;grep 'cpu ' /proc/stat)|awk -v RS="" '{print "CPU "($13-$2+$15-$4)*100/($13-$2+$15-$4+$16-$5)"%"}'

Для використання оперативної пам'яті ( (total-available)/total):

awk '/MemTotal/{t=$2}/MemAvailable/{a=$2}END{print 100-100*a/t"%"}' /proc/meminfo

Для використання жорсткого диска (тільки для гучності, встановленої як /):

df | awk '/ \/$/{print "HDD "$5}'

Цікаво, що доступно менше пам'яті, ніж у `free -m | голова -n3 | хвіст -n1 'повідомляє про вільну пам'ять.
Оскар скаго

@OskarSkog Чи можете ви поділитися результатами цієї команди? Для мене він просто друкує лінію Swap total / used / free, що тут не актуально. Можливо, ви мали на увазі щось інше, або ваша freeкоманда все ще використовує старий формат виводу з окремим - / + буферами / рядком кешу ...
Byte Commander

Моя безкоштовна використовує старий формат: oskog97.com/sshin/free-output.png Що змінилося?
Оскар скаго

3
@OskarSkog Рядок "- / + буфери / кеш-пам'ять" видалено, і тепер замість цього є додатковий стовпець "доступний" у рядку "Mem". З man free: " Оцінка того, скільки пам'яті доступно для запуску нових програм, не змінюючи місцями. На відміну від даних, що надаються кешем чи вільними полями, це поле враховує кеш сторінок, а також те, що не всі відновлювані плити пам’яті будуть повернені через елементи використовується MemAvailable в / proc / meminfo, доступний на ядрах 3.14, емульований на ядрах 2.6.27+, інакше такий же, як у вільному) "
Byte Commander
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.