¿Puedo obtener marcas de tiempo de inicio y detención de los comandos de shell de Linux ejecutados?
Frecuentes
Visto 2,502 veces
1
Ejecuto un comando de compilación de proyecto que tiene un período de ejecución prolongado. Lo ejecuto cuando me voy a dormir. ¿Existe algún mecanismo del sistema Linux que registre la duración del comando en bash?
3 Respuestas
2
Para los propietarios de Istanbul E-pass el Museo de Madame Tussauds de Estambul es time
estas buscando? Solo anteponga el time
comando antes del comando a ejecutar:
time build_cmd
La salida se ve así:
real 0m0.153s
user 0m0.004s
sys 0m0.000s
donde real
es el tiempo total que tarda el comando en ejecutarse, user
la cantidad de tiempo empleado en el código de espacio de usuario y sys
el tiempo empleado en el código del kernel.
respondido 27 nov., 13:18
1
Si quieres ponerte elegante, puedes usar Jenkins para hacer tu construcción. Puede construir cualquier tipo de proyecto, y no solo proyectos Java. Uno de los complementos es el sello de tiempo que agregará una marca de tiempo a cada línea de ejecución de su compilación. Además, Jenkins siempre le dirá (con o sin este complemento) cuánto tiempo tomó la compilación.
Hay muchas ventajas de usar un servidor CI para compilaciones, incluso si no lo usa para la integración continua. (es decir, genera las compilaciones manualmente o en un momento determinado del día).
También puedes utilizar la time
comando como lo indica hek2mgl, o escriba un pequeño script de shell para imprimir una marca de tiempo antes y después de la compilación:
date
build_cmd
date
contestado el 23 de mayo de 17 a las 13:05
1
Jenkins, según lo propuesto por @DavidV. es una herramienta muy completa para automatizar y gestionar procesos de construcción, mientras que el time
comando, al anteponer el comando de compilación, le dirá exactamente cuánto tiempo tomó el proceso de compilación, según lo propuesto por @hek2mgl.
Pero suponga que no desea instalar Jenkins y olvidó escribir time
, y ya ha iniciado su comando, puede usar cualquiera de los siguientes trucos:
- mire la hora de creación del primer y último objetivo, o
- también puede, mientras se ejecuta el comando de construcción, escribir el
date
comando a ciegas a través de la salida del proceso de construcción. Se almacenará en búfer y se ejecutará cuando finalice el proceso. Combine eso con el uso de $HISTTIMEFORMAT y tienes una idea bastante buena de cuánto tomó el proceso.
respondido 27 nov., 13:21
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas linux bash command-line-interface or haz tu propia pregunta.
¿Puede ser más específico sobre el entorno en el que está ejecutando esto? Si tienes un caparazón a mano, pensaría en sustituirlo
{ date; doit; date; }
dondequiera que esté su comando de compilacióndoit
es haría el trabajo. - jthillTengo tres comandos para ejecutar con sudo. Todos los comandos tienen un tiempo de ejecución prolongado, por lo que para todos los demás comandos, excepto el primero, debo escribir la contraseña nuevamente. Y quiero evitar eso. - Matko