Один вкладыш для отображения загрузки процессора, оперативной памяти и жесткого диска

15

Я видел несколько постов, желающих того же в отношении использования, однако ответы ВСЕГДА относятся к установке какого-либо стороннего инструмента.

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

Любые лайнеры? Следующее было бы хорошим выводом:

CPU 11% RAM 20% HDD 85%
Карл Моррисон
источник
Является ли использование жесткого диска в процентах, насколько он заполнен или насколько занят?
Byte Commander
@ByteCommander Оба? :) На серьезной ноте, хотя емкость. Если бы и то и другое было бы неплохо.
Карл Моррисон
Вздох .......: - /
Byte Commander
@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%
MKay
источник
2
HD часть будет сосать, если у вас много разделов.
17
1
df -h /часть командной строки показывает статистику по /разделам. Вы можете повторить df -hкоманду и заменить /ее точкой монтирования, которую вы хотите отслеживать.
MKay
1
Не работает для меня Процессор всегда составляет 91%, я понятия не имею, откуда он это берет. // А RAM включает в себя буферы и кеш, что делает его похожим на исчерпанный. Я использую 97,8% оперативной памяти, но все еще 67,5% свободной.
Оскар Ског
2
@OskarSkog Ты topв порядке. Загрузка ЦП не может быть измерена в текущий момент времени, она должна измеряться за короткий промежуток времени. Когда topзапускается первая итерация, он показывает среднее использование с момента последней перезагрузки. Начиная со второй итерации, она показывает текущее текущее использование с предыдущей итерации. И если у вас есть проблемы с локализацией, вы можете поставить LC_ALL=Cперед командой использование английской локализации по умолчанию (числовые форматы и т. Д., А не язык).
Byte Commander
2
@MKay: вы можете заменить top -bn1 | grep "Cpu(s)"на top -bn2 | grep "Cpu(s)" | tail -n1. Первый из них будет отображать долгосрочное среднее значение, на что указывает Byte Commander.
Оскар Ског
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}'
Byte Commander
источник
Интересно, что памяти меньше, чем у `free -m | голова -n3 | tail -n1 'сообщает как свободная память.
Оскар Ског
@OskarSkog Можете ли вы поделиться своим выводом этой команды? Для меня он просто печатает строку «Поменять / использовать / освободить», которая здесь не актуальна. Возможно, вы имели в виду что-то еще, или ваша freeкоманда все еще использует старый формат вывода с отдельной строкой - / + buffers / cache ...
Byte Commander
Мой бесплатный использует старый формат: oskog97.com/sshin/free-output.png Что изменилось?
Оскар Ског
3
@OskarSkog Строка «- / + buffers / cache» удалена, и теперь в строке «Mem» есть дополнительный столбец «available». От man free: « Оценка того, сколько памяти доступно для запуска новых приложений без подкачки. В отличие от данных, предоставляемых кешем или свободными полями, это поле учитывает кеш страниц, а также то, что не все восстанавливаемые блоки памяти будут восстановлены из-за элементов используется MemAvailable в / proc / meminfo, доступно в ядрах 3.14, эмулируется в ядрах 2.6.27+, в остальном то же самое, что и бесплатное) "
Byte Commander