Un revestimiento para mostrar el uso de CPU, RAM y HDD


15

He visto algunas publicaciones que quieren lo mismo con respecto al uso, sin embargo, las respuestas SIEMPRE se refieren a la instalación de alguna herramienta de terceros.

No quiero instalar nada.

¿Alguien se recubre? Lo siguiente sería un buen resultado:

CPU 11% RAM 20% HDD 85%

¿El uso de HDD es el porcentaje de lo lleno que está o lo ocupado que está?
Byte Commander

@ByteCommander Ambos? :) En una nota seria, la capacidad sin embargo. Si los dos estuvieran bien.
Karl Morrison

Suspiro .......: - /
Byte Commander

@ByteCommander Por capacidad quiero decir "cuán lleno está" si no estaba claro :)
Karl Morrison

Respuestas:


28

Puedes usar esto

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)}'`"

La salida es

CPU 7.4% RAM 33.9% HDD 94%

2
la parte HD va a apestar si tienes muchas particiones.
coteyr

1
df -h /parte de la línea de comando muestra las estadísticas sobre la /partición. Puede repetir el df -hcomando y sustituirlo /por el punto de montaje que necesita monitorear.
MKay

1
No funciona para mi La CPU siempre es del 91%, no tengo idea de dónde saca eso. // Y la RAM incluye buffers y caché haciendo que parezca que está agotada. Yo uso 97.8% de RAM, pero todavía hay 67.5% gratis.
Oskar Skog

2
@ OskarSkog Tu topestá bien. El uso de la CPU no se puede medir en el momento actual, se debe medir en un corto período de tiempo. Cuando topejecuta la primera iteración, muestra el uso promedio desde el último reinicio. Comenzando con la segunda iteración, muestra el uso actual real desde la iteración anterior. Y si tiene problemas con la localización, puede poner LC_ALL=Cdelante del comando para usar la localización predeterminada en inglés (formatos de números, etc., no idioma).
Byte Commander

2
@MKay: es posible que desee reemplazar top -bn1 | grep "Cpu(s)"con top -bn2 | grep "Cpu(s)" | tail -n1. El primero mostrará un promedio a largo plazo como lo señala Byte Commander.
Oskar Skog

7

Para uso de CPU (promedio de (user+system)/(user+system+idle)veces durante 0.1 segundos):

(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)"%"}'

Para uso de RAM ( (total-available)/total):

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

Para uso de HDD (solo del volumen montado como /):

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

Interesante, hay menos memoria disponible que lo que `free -m | cabeza -n3 | tail -n1 'informa como memoria libre.
Oskar Skog

@OskarSkog ¿Puedes compartir tu salida de ese comando? Para mí, simplemente imprime la línea Swap total / used / free, que no es relevante aquí. Tal vez quisiste decir algo más, o tu freecomando todavía usa el antiguo formato de salida con - / + buffers / línea de caché por separado ...
Byte Commander

My free utiliza el formato anterior: oskog97.com/sshin/free-output.png ¿Qué ha cambiado?
Oskar Skog

3
@OskarSkog La línea "- / + buffers / cache" se eliminó y ahora hay una columna adicional "disponible" en la fila "Mem". De man free: " Estimación de la cantidad de memoria disponible para iniciar nuevas aplicaciones, sin intercambio. A diferencia de los datos proporcionados por la memoria caché o los campos libres, este campo tiene en cuenta la memoria caché de la página y también que no se recuperarán todas las losas de memoria recuperables debido a elementos en uso Mem Disponible en / proc / meminfo, disponible en kernels 3.14, emulado en kernels 2.6.27+, de lo contrario es lo mismo que gratis) "
Byte Commander
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.