![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUFVIfYYGQMLzPvOUcEd6GvaaHwJRK9VCO9-HlBgPP5vEnAYDGZQSczqNbIOUOhwt54co1O7z1747ZaFkcksH0mY_mT2CkYrZN4SO4Dql9CYx1r3az_Q_UuUK8RwwJlcndAfAYaA/s200/ssh.jpg)
Para ello podemos utilizar "while read...", pero cuando hacemos efectivamente el script podemos ver que se ejecuta en la primera máquina y no se ejcuta en las demás:
# while read server; do
ssh $server 'uptime'
done < list
La razón es que while lee de la entrada estándar (stdin) y el comando ssh toma el control de la entrada estándar, de manera que estropea el bucle que se está haciendo. Añadiendo la opción -n antes del comando ssh redirecciona a la entrada estándar que espera ssh de /dev/null, previniendo que ssh estropee el bucle.
De este modo el comando correcto que funcionaría sería:
# while read server; do
ssh -n $server 'uptime'
done < list
1 comentario:
Fiuu, gracias!
Solo me lo hacía en una máquina y me estaba volviendo loco.
Publicar un comentario