[eside-ghost] Loop que se rompe en bash
Alfredo Beaumont
alfredo.beaumont en gmail.com
Lun Ago 20 15:00:28 CEST 2007
Al, 2007eko Aburen 20a(e)an, Pablo Pérez(e)k idatzi zuen:
> Hola
>
> Tengo este script con el que pretendo ejecutar un comando remotamente en
> un monton de servidores que tengo guardados en un fichero:
>
> ----------------------
> #!/bin/bash
> fichero="/home/lista_de_servidores.txt"
> comando="/bin/df -h /mnt/disco_backup"
>
> cat $fichero | while read linea
> do
> servidor=`echo $linea | cut -d';' -f1`
> ip=`echo $linea | cut -d';' -f2`
> echo
> echo Ejecutando $comando en $servidor
> echo
> /usr/bin/ssh $ip "$comando"
> done
> ---------------------------
>
> Resulta que despues del primer ssh el loop se rompe y ya no sigue
> procesando más líneas del fichero. Si cambio esa linea por un
>
> echo $ip "$comando"
>
> entonces si que procesa todo el fichero. He probado a poner
>
> exec /usr/bin/ssh $ip "$comando"
>
> y tambien esta otra:
>
> ( usr/bin/ssh $ip "$comando" )
>
> pero sigue igual ¿Como hago para que la ejecución de ssh no rompa el bucle?
utiliza -f para ejecutar ssh en background:
ssh -f $ip $comando
--
Alfredo Beaumont Sainz
http://www.alfredobeaumont.org/blog.cgi
Más información sobre la lista de distribución eside-ghost