¿Cómo puedo escribir un script de shell que muestre los resultados en tiempo real?
Algo así como el top
comando que actualiza los resultados después de algunos intervalos fijos de tiempo.
¿Cómo puedo escribir un script de shell que muestre los resultados en tiempo real?
Algo así como el top
comando que actualiza los resultados después de algunos intervalos fijos de tiempo.
curses
interfaz ... pero creo que esta es más una pregunta de programación y pertenece a SORespuestas:
Sería útil que fuera mucho más específico sobre lo que está tratando de hacer.
Aquí hay un ejemplo extremadamente simplista:
fuente
puede usar el comando watch (1) para ejecutar su script a intervalos regulares:
Esto se ejecutará
myscript.sh
cada 1 segundo limpiando la pantalla entre cada ejecución y con una marca de tiempo en la esquina. Puede usar la-d
opción e incluso resaltará las diferencias en la salida por ejecución.fuente
watch
. ¿Podrías ser más específico? Que sistema operativoLa 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.
fuente
Erm, en caso de que esté mirando la
top
salida 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.
fuente
top
usa maldiciones y lee el/proc
sistema de archivosfuente
/proc
. Otra forma de obtener la información es sysctl (8) / sysctl (3).