En la administración de sistemas y el desarrollo de software, a menudo se necesita medir el tiempo para evaluar el rendimiento de una tarea o un programa. Aunque el tiempo se mide en segundos, puede ser difícil de interpretar si el valor es muy grande. Para facilitar su lectura, es útil convertir los segundos a un formato más convencional, como hora:minuto:segundo (HH:MM:SS).
Aquí hay cinco razones por las que sería una buena idea medir el tiempo de los scripts:
En este artículo, presentamos un script Bash que realiza esta conversión y discutimos cómo puede ser utilizado en otros scripts Bash para medir el tiempo.
El siguiente script Bash, llamado ‘time.sh’, convierte una cantidad dada de segundos a formato HH MM SS:
#!/bin/bash function timef() { local total_seconds=$1 local hours=$((total_seconds / 3600)) local minutes=$(( (total_seconds % 3600) / 60 )) local seconds=$((total_seconds % 60)) if [ $total_seconds -gt 3599 ]; then printf "%02dh %02dm %02ds\n" $hours $minutes $seconds return fi if [ $total_seconds -gt 59 ]; then printf "%02dm %02ds\n" $minutes $seconds return fi printf "%02ds\n" $seconds }
El uso y la salida serían algo así, primero la entrada:
timef 59 //Salida: 59s
timef 62 //Salida: 01m 02s
timef 150 //Salida: 02m 30s
timef 3590 //Salida: 59m 50s
timef 3600 //Salida: 01h 00m 00s
timef 3700 //Salida: 01h 01m 40s
A la hora de implementarlo en nuestros scripts podemos hacerlo de la siguiente forma
source timef.sh # ... código del script ... # Ejemplo de medición de tiempo start_time=$(date +%s) # ... ejecutar tarea o programa ... end_time=$(date +%s) elapsed_seconds=$((end_time - start_time)) # Convertir el tiempo transcurrido a formato HH MM SS elapsed_time=$(timef $elapsed_seconds) echo "Tiempo transcurrido: $elapsed_time"
En este ejemplo, utilizamos la función ‘date +%s’ para obtener la hora actual en segundos desde la época Unix (1 de enero de 1970). Luego, ejecutamos la tarea o el programa que queremos medir y obtenemos la hora en segundos nuevamente. Restamos la hora de inicio de la hora de finalización para obtener la cantidad de segundos transcurridos. Finalmente, utilizamos la función ‘timef’ para convertir los segundos transcurridos a formato HH MM SS.
La conversión de segundos a formato hora:minuto:segundo es una tarea común al medir el tiempo en scripts Bash, el script ‘time.sh’ presentado en este artículo ofrece una solución simple y efectiva para realizar esta conversión, al incluir este script en sus propios proyectos, puede mejorar la legibilidad de las mediciones de tiempo y facilitar la evaluación del rendimiento de las tareas y programas ya sea en tiempo de desarrollo como al ser usando en producción, el medir el tiempo de ejecución en producción nos permite detectar cambios a lo largo del tiempo que pueden indicar problemas o detalles que debemos revisar.
Administrador de Sistemas, Programador, Docente y ahora resulta que también Blogger (peor es ser tictoker). Más de 20 años de experiencia en computación atendiendo nabos y resolviendo problemas que sino fuera por estos nabos no habrían ocurrido en primer lugar. Escribo más que nada sobre tecnología y herramientas en general además de algunos artículos con opiniones tan subjetivas como irrelevantes, así que si no te gustan mejor madura.
Normalmente, a las estadísticas del blog no le presto demasiada atención, sin embargo, trabajando en…
La idea principal detrás de este blog es marca personal, el blog es para centralizar…
El migrar el disco duro es bastante sencillo como se verá a continuación, la principal…
Cuando se trata de virtualización en el escritorio, una de las primeras opciones son sin…
Siempre he sido un ferviente defensor de una conexión por cable UTP para trabajar por…
Al fin pude recuperar alvarodeleon.com, no es que lo hubiera perdido, fue peor, lo deje…
Ver comentarios
Una genialidad !!! Era lo que estaba buscando !!! Lo implemente en un script que tada hora y pico sin problemas ! Muchas gracias por el aporte.
Hola, muchas gracias a ti por tu comentario, me alegra que te haya servido, saludos