¿Cómo muestra el comando "top" resultados en vivo?


9

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

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

texto alternativo


66
probablemente usando una cursesinterfaz ... pero creo que esta es más una pregunta de programación y pertenece a SO
xenoterracide

Respuestas:


7

Sería útil que fuera mucho más específico sobre lo que está tratando de hacer.

Aquí hay un ejemplo extremadamente simplista:

while true
do
    clear
    date
    sleep 1
done

13

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

watch -n 1 myscript.sh

Esto se ejecutará myscript.shcada 1 segundo limpiando la pantalla entre cada ejecución y con una marca de tiempo en la esquina. Puede usar la -dopción e incluso resaltará las diferencias en la salida por ejecución.


Estaba pensando en cómo responder usando el reloj.
Kevin M

No tengo watch. ¿Podrías ser más específico? Que sistema operativo
Chris Page

2

La mayoría de esos datos generalmente se exponen en las primitivas del sistema de archivos virtual / proc. Cada proceso tiene una entrada en / proc en un directorio llamado PID. Entonces / proc / 5437 tendría las primitivas para el proceso 5437. Leer las primitivas allí y analizarlas adecuadamente te acercaría a lo que hace la parte superior.

Top realmente funciona llamando a funciones específicas que extraen esta información directamente del núcleo en lugar de extraerla de los archivos. Para hacer lo mismo desde bash, tendría que extraerlo del sistema de archivos virtual / proc o extraerlo de otras llamadas como a ps.

En cuanto al tiempo real, eso no es factible en el nivel de detalle que ofrece la parte superior. Puede reducir el tiempo lo suficiente como para que parezca en tiempo real, pero seguirá obteniendo intervalos de tiempo.


2

Erm, en caso de que esté mirando la topsalida durante más tiempo, y no solo para verificar si un programa está funcionando bien, sugiero usar htop .

Le brinda 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 gráficos de barras y columnas.


Creo que está preguntando cómo escribir una aplicación que realice encuestas a intervalos regulares, no específicamente sobre top u htop.
Chris

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.