Objetivo: actualizar el indicador de comando de la terminal con las estadísticas de uso de la CPU desde que apareció el último indicador, por ejemplo, jeremy@Mac:57%CPU|~/ $
Investigación: Sé que en Linux, iostat
lee /proc/stat
y busca cambios entre las comprobaciones para proporcionar información precisa. Utilicé algo como lo siguiente en CentOS:
local cur_tick_total=$(awk 'FNR == 1 {sum=0; for (i=2; i<=NF; i++) {sum+=$i} printf "%.0f\n", sum}' /proc/stat)
local cur_tick_idle=$(awk 'FNR == 1 {print $5}' /proc/stat)
local delta_tick_total=$(( $cur_tick_total - $__prev_tick_total ))
local delta_tick_idle=$(( $cur_tick_idle - $__prev_tick_idle ))
local percent_idle=$(( $delta_tick_idle * 100 / $delta_tick_total ))
__cpu=$(( 100 - $percent_idle ))
Pregunta: ¿Cómo puedo hacer esto en Mac? Si iostat
funciona de la misma manera que en Linux, tiene que leer desde un lugar como este, pero /proc/stat
no existe en Mac. Quiero saber dónde se ve para poder leer desde esa ubicación yo mismo como parte de mi PS1
.
Editar: la salida de iostat
no funciona para mis propósitos, ya que da salida a promedio de carga del sistema, que es un número sin sentido o CPU% desde el inicio del sistema, lo que no me ayuda. Quiero una métrica de uso de la CPU real más instantánea que pueda obtener instantáneamente a través de la línea de comandos.