GNU/Linux >> Tutoriales Linux >  >> Linux

12 Ejemplos de opciones de formato de salida de comando de tiempo de UNIX/Linux

El comando de tiempo de Linux es útil para identificar el tiempo que tarda un comando.

Con el comando de tiempo de Linux, puede calcular cuánto tiempo se tardó en ejecutar un comando, un script de shell o cualquier otro programa.

De forma predeterminada, el comando de tiempo ejecuta el comando o programa dado. Después de la ejecución, muestra las estadísticas y el uso de recursos en el error estándar.

El comando de tiempo proporciona varias opciones de línea de comandos y varias opciones de formato como se explica en este tutorial

1. Ejemplo de uso de comando de tiempo básico

Sintaxis del comando de tiempo:

$ time [-options] <command arg1 arg2 ..>

Por ejemplo, el comando de tiempo se ejecuta en el comando de suspensión sin ninguna opción.

$ /usr/bin/time sleep 2
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+172minor)pagefaults 0swaps

Ahora comprendamos algunas opciones importantes de la línea de comandos de este comando.

2. Escriba la salida de estadísticas de tiempo en un archivo usando la opción -o

Esta opción es para restringir el envío de los resultados del comando a un error estándar, pero escribe los resultados en el archivo de salida. Esta opción sobrescribe el archivo especificado.

Aquí hay un ejemplo:

$ /usr/bin/time -o time.txt sleep 2

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps

3. Agregue la salida de estadísticas de tiempo a un archivo existente usando la opción -a

Esta opción permite agregar la salida del comando de tiempo al archivo. Se usa junto con la opción -o. Esta opción evita sobrescribir el contenido del archivo de salida al agregar la salida del comando de tiempo en el archivo de salida especificado.

Aquí hay un ejemplo:

$ /usr/bin/time -a -o time.txt sleep 4

$ cat time.txt
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+175minor)pagefaults 0swaps
0.00user 0.00system 0:04.00elapsed 0%CPU (0avgtext+0avgdata 2288maxresident)k
0inputs+0outputs (0major+176minor)pagefaults 0swaps

4. Mostrar porcentaje de CPU utilizada:%P

Puede proporcionar opciones de formato de salida utilizando la opción -f. Esta opción permite al usuario proporcionar opciones de formato de salida. Es posible que anule el formato especificado en la variable de entorno TIME. Las siguientes opciones de formato se describen a continuación:%P, %M, %S, %e, %E, %C, %Z, %c, %x.

Esta opción da el porcentaje de la CPU que tiene el proceso de comando (es decir, ejecutar bajo el comando de tiempo) para su ejecución. Estos son solo los tiempos de usuario + sistema divididos por el tiempo total de ejecución. También imprime un signo de porcentaje.

$ /usr/bin/time -f "\t%P CPU Percentage" find / -name my-program.sh
/root/my-program.sh
        82% CPU Percentage

Aquí, la salida del comando muestra que el comando de búsqueda tomó el 82 % de la CPU.

5. Mostrar el tamaño máximo del conjunto de residentes:%M

Esta opción proporciona el tamaño máximo del conjunto residente del proceso de comando (es decir, se ejecuta bajo el comando de tiempo) durante su vida útil, en Kilobytes.

$ /usr/bin/time -f "\t%M Max Resident Set Size (Kb)" find / -name my-program.sh
/root/my-program.sh
        8688 Max Resident Set Size (Kb)

Aquí, la salida del comando muestra que el comando de búsqueda tomó 8688 KB como tamaño residente máximo del proceso.

6. Mostrar el número total de segundos de CPU:%S

Esta opción proporciona el número total de segundos de CPU utilizados por el sistema en nombre del proceso (en modo kernel), en segundos.

$ /usr/bin/time -f "\t%S CPU-seconds" find / -name my-program.sh
/root/my-program.sh
        0.35 CPU-seconds

Aquí, la salida del comando muestra que el comando de búsqueda tomó 0,35 segundos de CPU en modo kernel.

7. Mostrar tiempo real transcurrido en segundos:%e

Esta opción proporciona el tiempo real transcurrido (es decir, el reloj de pared) utilizado por el proceso, en segundos.

$ /usr/bin/time -f "\t%e Elapsed Real Time (secs)" sleep 2
        2.00 Elapsed Real Time (secs)

Aquí, la salida del comando muestra que la ejecución del comando de suspensión transcurrió hasta 2 segundos.

8. Mostrar el tiempo real transcurrido en un formato diferente:%E

Esta opción proporciona el tiempo real transcurrido (es decir, el reloj de pared) utilizado por el proceso, en este formato:[horas:]minutos:segundos.

$ /usr/bin/time -f "\t%E Elapsed Real Time (format)" sleep 2
        0:02.00 Elapsed Real Time (format)

Aquí, la salida del comando muestra que la ejecución del comando de suspensión tomó 0 horas, 0 minutos y 2 segundos.

9. Mostrar el nombre del programa y los argumentos de la línea de comandos:%C

Esta opción proporciona el nombre y los argumentos de la línea de comando del comando (es decir, se ejecuta bajo el comando de tiempo).

$ /usr/bin/time -f "\t%C (Program Name and Command Line)" find / -name my-program.sh
/root/my-program.sh
        find / -name my-program.sh test_time (Program Name and Command Line)

Aquí, la salida del comando de tiempo muestra el nombre del comando que se está ejecutando y sus argumentos de línea de comando.

10. Mostrar tamaño de página del sistema en bytes:%Z

Esta opción proporciona el tamaño de página del sistema, en bytes. Esta es una constante por sistema, pero puede variar de un sistema a otro.

$ /usr/bin/time -f "\t%Z System Page Size (bytes)" sleep 2
        4096 System Page Size (bytes)

Aquí, la salida del comando muestra que el comando de suspensión usó 4096 bytes como tamaño de página del sistema.

11. Mostrar número de cambios de contexto:%c

Esta opción proporciona el número de veces que el proceso cambió de contexto de forma involuntaria (porque expiró el intervalo de tiempo).

$ /usr/bin/time -f "\t%c Context Switches" find / -name my-program.sh
/root/my-program.sh
        254 Context Switches

Aquí, la salida del comando muestra que 254 veces se produjo un cambio de contexto del proceso durante la ejecución del comando de búsqueda bajo el comando de tiempo.

12. Mostrar estado de salida de un comando:%x

Esta opción proporciona el estado de salida del comando (es decir, se ejecuta bajo el comando de tiempo).

$ /usr/bin/time -f "\t%x Exit Status" top1
/usr/bin/time: cannot run top1: No such file or directory
        127 Exit Status

Aquí, la salida del comando muestra que el comando top1 falló porque este tope1 como archivo no existe.

Según la página man del comando de tiempo, el estado de salida del comando de tiempo puede ser el siguiente:

  • Si se invocó el comando especificado en el comando de tiempo, el estado de salida es el estado de salida del comando que se ejecuta con el comando de tiempo.
  • Es 127 si no se pudo encontrar el comando especificado para el comando de tiempo.
  • 126 si se pudo encontrar el comando especificado en el comando de tiempo, pero no se pudo invocar.
  • Algún otro valor distinto de cero (1-125) si algo salió mal.

Finalmente, hay una diferencia entre ejecutar solo “time” y “/usr/bin/time”. Explicamos esto en nuestro artículo anterior de introducción al comando de tiempo.


Linux
  1. Ejemplos de comandos de tiempo de Linux

  2. 10 ejemplos de comandos Xargs en Linux / UNIX

  3. Ejemplos de comandos sa en Linux

  4. Ejemplos de comandos tee en Linux

  5. Ejemplos de comandos timedatectl en Linux

Comando de tiempo de Linux

11 ejemplos útiles de comandos de fecha de Linux

Ejemplos de comandos echo de Linux

Ejemplos de comandos de fecha de Linux

Ejemplos de comandos id en Linux

Ejemplos de comandos uptime en Linux