Archivo etiqueta Scripting

Calcular tiempo de ejecución de un comando en Bash Shell

El otro día estaba interesado en calcular el tiempo que tardaba en ejecutarse un comando, y esta es la forma que encontré de hacerlo:

#!/bin/bash
inicio_ns=`date +%s%N`
inicio=`date +%s`
sleep 5 # el comando
fin_ns=`date +%s%N`
fin=`date +%s`
let total_ns=$fin_ns-$inicio_ns
let total=$fin-$inicio
echo "ha tardado: -$total_ns- nanosegudos, -$total- segundos"

Como se puede comprobar, incluso se llega a tener una precisión de nanosegundos.

Fuente

{lang: 'es'}

, , , , , , , ,

8 Comentarios

Ejecución de aplicaciones remotas a través de SSH

Puede interesarnos ejecutar aplicaciones remotas en otras máquinas a través de SSH, y si ya lo planteamos como una tarea automática, más.

Aquí dejo un ejemplo de cómo se podría hace con SSH.

$ ssh -i /home/kardinal/.ssh/id_rsa_mon -l kardinal plan01.wnet "/aplicaciones/launcher/script.sh"

donde…

/home/kardinal/.ssh/id_rsa_mon es un fichero que contiene la clave pública del usuario.
kardinal es el usuario.
plan01.wnet es el host.
/aplicaciones/launcher/script.sh es la ruta de la aplicación en el host remoto.

{lang: 'es'}

, , , , , , , ,

No hay Comentarios

Formas de hacer un bucle FOR en Bash

Hay varias formas de hacer bucles FOR en Bash… aquí os muestro algunos ejemplos:

#!/bin/bash
for i in $( ls ); do
echo item: $i
done

#!/bin/bash
for ((i=100;i<=115;i+=1)); do
echo $i
sleep 1
echo $i > /dev/ttyS1
done

#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done

aquí he encontrado más bucles interesantes.

{lang: 'es'}

, , , , , , ,

6 Comentarios

Listar SÓLO directorios en Bash

Hoy haciendo un Shell Script me ha surgido la necesidad de hacer un listado de los directorios (y no ficheros) que hay en una determinada ruta.

Al parecer el comando ls no dispone de esta utilidad… cosa que me parece un poco extraña, pero he encontrado un modo de hacerlo con find.

$ find . -maxdepth 1 -type d

Incluso, para más comodidad te puedes hacer un alias:

$ alias lsdirs='find . -maxdepth 1 -type d'

{lang: 'es'}

, , , , , , ,

11 Comentarios