it-swarm-es.com

¿Cómo se muestra el comando "top"?

¿Cómo puedo escribir un script de shell que muestra los resultados en tiempo real?

Algo así como el top comando que actualiza los resultados después de algunos intervalos fijos de tiempo.

alt text

9
Lazer

Ayudaría si fueras mucho más específico sobre lo que estás tratando de hacer.

Aquí hay un extremadamente ejemplo simplista:

while true
do
    clear
    date
    sleep 1
done

puede usar el comando Watch (1) para ejecutar su script a intervalos regulares:

watch -n 1 myscript.sh

Esto se ejecutará myscript.sh Cada 1 segundo que limpia la pantalla entre cada carrera y con una marca de tiempo en la esquina. Puedes usar el -d Opción e incluso resaltará las diferencias en la salida por ejecución.

13
joshperry

La mayoría de los datos generalmente se exponen en las primitivas de sistema de archivos virtuales/proc. Cada proceso tiene una entrada en/proc en un directorio llamado PID. SO/PROC/5437 tendría las primitivas para el proceso 5437. Leyendo las primitivas allí y analizando adecuadamente, sin embargo, usted cerca de lo que lo hace.

Los mejores trabajan en realidad llamando llamadas de función específicas que extraen esta información directamente desde el kernel en lugar de extraerla de los archivos. Para hacer lo mismo desde Bash, tendría que tirarlo del sistema de archivos virtuales/proc PROC, o extraerlo de otras llamadas, como para ps.

En cuanto al tiempo real, eso no es bastante factible a nivel de detalle. Puede cortar tiempo lo suficientemente bien como para que parezca en tiempo real, pero aún así obtendrá rebanadas de tiempo.

2
sysadmin1138

ERM, en caso de que estés mirando top Salida por más tiempo, y no solo para verificar si un programa está bien, sugiero usar htop .

Le da mucha información en tiempo real y es más fácil de controlar y administrar.

Puede cambiar el diseño de la salida, como los gráficos de barras y las columnas.

2
polemon

top usa maldiciones y lee el /proc sistema de archivos

1
Recursion