Cómo guardar la salida del comando superior en un archivo


El comando superior de Linux es muy utilizado por los administradores del sistema para mostrar estadísticas del sistema en tiempo real con respecto al tiempo de actividad del sistema y el promedio de carga, la memoria utilizada, las tareas en ejecución, un resumen de procesos o subprocesos e información detallada sobre cada proceso en ejecución.

Sin embargo, además de la visualización en tiempo real del sistema en ejecución, top para operar en modo por lotes y el indicador -n para especificar la cantidad de iteración que debe generar el comando.

En el siguiente ejemplo, redirigiremos la salida del comando top al archivo top.txt en el directorio de trabajo actual. El argumento -n se utilizará para enviar solo una instantánea del comando al archivo mencionado.

$ top -b -n 1 > top.txt

Para leer el archivo resultante, use una utilidad de lectura de archivos de línea de comandos, como menos o más.

$ less top.txt

Para tomar cinco iteraciones del comando superior, ejecute el comando como se muestra en el siguiente extracto.

$ top -b -n 5 > top-5iterations.txt

Para mostrar solo el número de tareas en ejecución del archivo resultante, use el filtro grep, como se muestra en el siguiente ejemplo de comando.

$ cat top-5iterations.txt | grep Tasks

Para tomar una instantánea de un proceso específico en la utilidad superior, ejecute el comando con el indicador PID (-p) . Para obtener el PID de un proceso en ejecución, emita el comando pidof contra el nombre del proceso en ejecución.

En este ejemplo, monitorearemos el proceso cron a través del comando superior tomando tres instantáneas del PID.

$ pidof crond
$ top -p 678 -b -n3 > cron.txt
$ cat cron.txt

Usando un ciclo de iteración for, podemos mostrar las estadísticas de un proceso a través de su PID, cada dos segundos, como se muestra en el siguiente ejemplo. La salida del bucle también se puede redirigir a un archivo. Usaremos el mismo cron PID que se muestra en el ejemplo anterior.

$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done	

Redirigir la salida del bucle al archivo.

$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done >> cron.txt
$ cat cron.txt

Estos son solo algunos ejemplos sobre cómo puede monitorear y recopilar estadísticas del sistema y del proceso a través del comando superior.