[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