comando de tiempo de linux

En el trabajo, escribí un script de Shell , el script puede obtener el tiempo desde el servidor NTP de turno cuatro, luego el tiempo más confiable hasta el tiempo del sistema. Debido a que tenemos altos requisitos de tiempo, necesitamos obtener el momento adecuado en poco tiempo. Por lo tanto, debemos probar el tiempo de ejecución de este script para ver cuánto tiempo lleva desde que se inicia la ejecución hasta configurar el tiempo correctamente.

Prueba de tiempo de ejecución de comandos de Linux Prueba de tiempo de ejecución de comandos de Linux

De hecho, en el trabajo, hay muchas situaciones en las que es necesario probar cuánto tiempo se ejecuta un script o programa, especialmente para sistemas con altos requisitos de tiempo. Para la prueba de tiempo, podemos usar un comando : tiempo. Echemos un vistazo más de cerca a cómo usar el comando time para medir el tiempo de un script / comando.

1. Uso básico del comando de tiempo

El uso más básico del comando time es el comando time +, como por ejemplo:

$ time ping baidu.com 
PING baidu.com (123.125.114.144) 56(84) bytes of data. 
64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=1 ttl=56 time=2.83 ms 
64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=2 ttl=56 time=2.77 ms 
………… 
^C 
--- baidu.com ping statistics --- 
8 packets transmitted, 8 received, 0% packet loss, time 10818ms 
rtt min/avg/max/mdev = 2.765/2.808/2.862/0.039 ms 

real    0m11.173s 
user    0m0.004s 
sys     0m0.002s 

En el resultado, real representa el tiempo transcurrido desde la ejecución del comando ping hasta la terminación final presionando ctrl + c; usuario y sys representan el tiempo de ejecución del comando ping en el espacio del usuario y el espacio del kernel, respectivamente.

2. Escriba la información de la hora en el archivo

Si queremos escribir la información de tiempo directamente en el archivo en lugar de mostrarla en la pantalla, entonces podemos usar la opción -o y especificar la ruta del archivo para escribir.

$ /usr/bin/time -o /home/alvin/time-output.txt ping baidu.com

Después de ejecutar este comando, el resultado de salida del comando ping todavía estará en la terminal, y el resultado del comando time se escribirá en el archivo time-output.txt que especificamos.

La opción -o significa que el archivo de salida se creará si no existe y, si existe, se sobrescribirá. Si no queremos sobrescribir, pero queremos agregar al final del archivo, podemos usar la opción -a.

$ /usr/bin/time -a /home/smart/time-output.txt ping linoxide.com

3. Muestra información de tiempo más detallada

Si el comando time no tiene opciones, la cantidad de información mostrada es relativamente pequeña, si queremos obtener información más detallada, entonces podemos usar la opción -v.

$ /usr/bin/time -v ping baidu.com 
PING baidu.com (123.125.114.144) 56(84) bytes of data. 
64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=1 ttl=56 time=2.75 ms 
64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=2 ttl=56 time=2.76 ms 
64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=3 ttl=56 time=2.85 ms 
64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=4 ttl=56 time=2.77 ms 
^C 
--- baidu.com ping statistics --- 
4 packets transmitted, 4 received, 0% packet loss, time 3300ms 
rtt min/avg/max/mdev = 2.751/2.785/2.851/0.075 ms 
        Command being timed: "ping baidu.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:03.64 
        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): 2140 
        Average resident set size (kbytes): 0 
        Major (requiring I/O) page faults: 0 
        Minor (reclaiming a frame) page faults: 626 
        Voluntary context switches: 10 
        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 

La información de los resultados es bastante detallada y podemos obtener la información que necesitamos.

4. Personaliza el formato de salida

Por defecto, el comando time solo da salida a los tres contenidos de real, usr y sys. Si queremos ser más personalizados, incluso si definimos su formato de salida, el comando time también es compatible. Hay muchos formatos compatibles con el comando de tiempo, como se muestra a continuación:

C - Name and command line arguments used 
D - Average size of the process's unshared data area in kilobytes 
E - Elapsed time in a clock format 
F - Number of page faults 
I - Number of file system inputs by the process 
K - Average total memory use of the process in kilobytes 
M - Maximum resident set the size of the process during the lifetime in Kilobytes 
O - Number of file system outputs by the process 
P - Percentage of CPU that the job received 
R - Number of minor or recoverable page faults 
S - Total number of CPU seconds used by the system in kernel mode 
U - Total number of CPU seconds used by user mode 
W - Number of times the process was swapped out of main memory 
X - Average amount of shared text in the process 
Z - System's page size in kilobytes 
c - Number of times the process was context-switched 
e - Elapsed real time used by the process in seconds 
k - Number of signals delivered to the process 
p - Average unshared stack size of the process in kilobytes 
r - Number of socket messages received by the process 
s - Number of socket messages sent by the process 
t - Average resident set size of the process in kilobytes 
w - Number of time the process was context-switched voluntarily 
x - Exit status of the command 

Si queremos generar el siguiente formato:

Elapsed Time = 0:01:00, Inputs 2, Outputs 1

Podemos personalizarlo así:

$ /usr/bin/time -f "Elapsed Time = %E, Inputs %I, Outputs %O" ping baidu.com 
PING baidu.com (220.181.38.148) 56(84) bytes of data. 
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=54 time=1.82 ms 
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=54 time=1.86 ms 
^C 
--- baidu.com ping statistics --- 
4 packets transmitted, 4 received, 0% packet loss, time 3003ms 
rtt min/avg/max/mdev = 1.825/1.859/1.879/0.056 ms 
Elapsed Time = 0:03.92, Inputs 0, Outputs 0

Si desea que la salida tenga un salto de línea, puede agregar \ n en el lugar correspondiente, como:

$ /usr/bin/time -f "Elapsed Time = %E \n Inputs %I \n Outputs %O" ping baidu.com

La salida será similar a esta:

Elapsed Time = 0:03.92 
Inputs 0 
Outputs 0 

El texto original proviene de: https://os.51cto.com/art/202004/613848.htm

La dirección de este artículo: https://www.linuxprobe.com/linux-command-runtime-test.html Editor: Feng Ruitao, Auditor: Pang Zengbao

Lista de comandos de Linux : https://www.linuxcool.com/

Lo anterior es el conocimiento relacionado con Linux compartido por Liangxu Tutorial Network para todos los amigos.

Supongo que te gusta

Origin blog.csdn.net/manongxianfeng/article/details/113090853
Recomendado
Clasificación