¿Puedo obtener marcas de tiempo de inicio y detención de los comandos de shell de Linux ejecutados?

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?

preguntado el 27 de noviembre de 13 a las 18:11

¿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ón doit es haría el trabajo. -

Tengo 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. -

3 Respuestas

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

Para aquellos que usan MacOS, este comando también funciona en MacOS. - Halil

Claro que lo es, ya que es un bash incorporado: hek2mgl

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

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 or haz tu propia pregunta.