Si quieres ser un buen administrador de Linux, debes saber time
mando. Se utiliza para determinar cuánto tiempo tarda en ejecutarse un comando determinado.
Es útil para probar el rendimiento de sus scripts y comandos (es decir, ayuda a encontrar el tiempo de ejecución de los scripts de shell o el tiempo que tarda un comando en finalizar).
Cómo usar el comando de hora de Linux
Usar time
comando, solo ejecuta time
con el comando / programa que desea ejecutar como entrada. Por favor marque abajo example
$ time ping linoxide.com
output
PING linoxide.com (104.27.115.15) 56(84) bytes of data.
64 bytes from 104.27.115.15 (104.27.115.15): icmp_seq=1 ttl=58 time=1.77 ms
64 bytes from 104.27.115.15 (104.27.115.15): icmp_seq=2 ttl=58 time=2.12 ms
64 bytes from 104.27.115.15 (104.27.115.15): icmp_seq=3 ttl=58 time=1.65 ms
--- linoxide.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 10016ms
rtt min/avg/max/mdev = 1.118/1.476/2.124/0.362 ms
real 0m10.536s
user 0m0.002s
sys 0m0.007s
El real
significa el tiempo del reloj de pared que el comando ‘ping’ tomó desde la ejecución hasta la terminación, user
y sys
son el tiempo que toma ping
el espacio de usuario y el espacio del kernel.
Cómo hacer que el comando de tiempo escriba su salida en un archivo
Para escribir la salida del comando de tiempo en un archivo en lugar de la pantalla de impresión, use el -o
opción de línea de comando, que espera un nombre de archivo / ruta como entrada.
$ /usr/bin/time -o /home/smart/time-output.txt ping linoxide.com
Ahora mostraremos la salida de ping en stdout, mientras que time
la salida del comando se escribirá en el archivo de texto.
Nota: Usamos / usr / bin / time en lugar de time
porque el comando de tiempo incorporado de shell no ofrece el -o
opción.
Cómo agregar su salida a un archivo existente
Para agregar la salida del comando de tiempo a un archivo existente en lugar de sobrescribirlo, use el -a
opción de línea de comando.
$ /usr/bin/time -a /home/smart/time-output.txt ping linoxide.com
Cómo obtener una salida detallada del comando de tiempo de linux
Podemos usar el -v
opción de línea de comando para producir una salida detallada.
$ time -v ping linoxide.com
output
Command being timed: "ping linoxide.com"
User time (seconds): 0.00
System time (seconds): 0.00
Percent of CPU this job got: 0%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:11.77
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 3064
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 158
Voluntary context switches: 14
Involuntary context switches: 0
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Cómo personalizar la salida del comando de tiempo
Hay una gran cantidad de opciones de formato como se muestra en la siguiente lista
C: nombre y argumentos de la línea de comandos utilizados
D – Tamaño medio del área de datos no compartidos del proceso en kilobytes
E – Tiempo transcurrido en formato de reloj
F – Número de fallos de página
I – Número de entradas del sistema de archivos por el proceso
K: uso de memoria total promedio del proceso en kilobytes
M – Residente máximo establece el tamaño del proceso durante la vida útil en kilobytes
O – Número de salidas del sistema de archivos por el proceso
P: porcentaje de CPU que recibió el trabajo
R: número de errores de página menores o recuperables
S: número total de segundos de CPU utilizados por el sistema en modo kernel
U: número total de segundos de CPU utilizados por el modo de usuario
W: número de veces que se cambió el proceso de la memoria principal
X – Cantidad promedio de texto compartido en el proceso
Z: tamaño de página del sistema en kilobytes
c – Número de veces que se cambió el contexto del proceso
e – Tiempo real transcurrido utilizado por el proceso en segundos
k – Número de señales enviadas al proceso
p: tamaño de pila promedio no compartido del proceso en kilobytes
r – Número de mensajes de socket recibidos por el proceso
s: número de mensajes de socket enviados por el proceso
t – Tamaño medio del conjunto residente del proceso en kilobytes
w: número de veces que el proceso se cambió de contexto de forma voluntaria
X – Exit estado del comando
Podemos usar los modificadores de formato de la siguiente manera:
$ time -f "Elapsed Time = %E, Inputs %I, Outputs %O"
El resultado del comando anterior sería algo como esto:
Elapsed Time = 0:01:00, Inputs 2, Outputs 1
Si queremos agregar una nueva línea como parte de la cadena de formato, use el carácter de nueva línea de la siguiente manera:
$ time -f "Elapsed Time = %E n Inputs %I n Outputs %O"
Versiones del comando Time de Linux
Hay tres versiones de comandos, Bash, Zsh y comandos de tiempo Gnu. Podemos usar el type
comando para determinar si el tiempo es una palabra clave binaria o incorporada.
$ type time
output
# Bash
time is a shell keyword
# Zsh
time is a reserved word
# GNU time (sh)
time is /usr/bin/time
Escriba sus sugerencias o comentarios en el comando de tiempo y para obtener más información, utilice tiempo man paginas.