[eside-ghost] Loop que se rompe en bash
Eneko chan
enekochan en gmail.com
Lun Ago 20 14:59:20 CEST 2007
Igual el problema es el ConnectTimeout de ssh o por no poner un ampersand
(&) al ejecutar el comando junto con un wait al final.
Hace poco lei un articulo sobre como hacer eso en la página de IBM. La
diferecia es que se pasaban las máquinas y los comandos por la linea de
comandos de la siguiente forma:
# runremote.sh "tururu1.tal.com tururu2.tal.com" "df -h;ls"
El script es así:
#!/bin/bash
TIMEOUT=10
ERRLOG=/tmp/remote-err-$$.log
OUTLOG=/tmp/remote-out-$$.log
MACHINES=$1;shift
COMMAND=$1;shift
for machine in $MACHINES
do
echo $machine >>$OUTLOG.$machine
ssh -oConnectTimeout=$TIMEOUT $machine $COMMAND >>$OUTLOG.$machine
2>>$ERRLOG.$machine &
done
# Se espera a que terminen todos los procesos hijo
wait
cat $OUTLOG.*
cat $ERRLOG.* >&2
rm -f $OUTLOG.* $ERRLOG.*
On 8/20/07, Pablo Pérez <pablofausto en gmail.com> wrote:
>
> 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?
>
> Gracias,
> Pablo Pérez.
>
>
>
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
--
Fotolog: http://www.fotolog.net/ceng
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20070820/89ee3b71/attachment-0001.htm
Más información sobre la lista de distribución eside-ghost