Operar en varios servidores remotos vía SSH
Revisado: 15 de febrero de 2010 | etiquetas: Shell, Trucos
Con el ssh podemos gestionar un servidor remoto de forma segura y con SCP podemos copiar ficheros de forma segura, pero siempre de un servidor en un servidor, pero a veces podemos necesitar operar en varios servidores a la vez, para lo cual deberíamos ir uno por uno, peor con este truco podemos operar en todos a la vez.
Para que quede más claro pondré un ejemplo y así se verá mej0r la utilidad y de paso el ejemplo en si puede ser otro buen truco.
Supongamos que queremos meter una nueva SSL key en varios servidores pero de una sola vez en vez de tener que ir servidor por servidor, para ello podemos usar este truco:
cat ~/.ssh/id_dsa.pub | tee >(ssh usuario1@ip1 'cat - >> ~/.ssh/authorized_keys') | ssh isuario2@ip2 'cat - >> ~/.ssh/authorized_keys'
Podemos repetir el bloque del tee tantas veces como servidores necesitemos operar, es este caso se opera sobre 2 servidores pero si fueran 3 haríamos:
cat ~/.ssh/id_dsa.pub | tee >(ssh usuario1@ip1 'cat - >> ~/.ssh/authorized_keys') | tee >(ssh usuario2@ip2 'cat - >> ~/.ssh/authorized_keys') | ssh usuario3@ip3 'cat - >> ~/.ssh/authorized_keys'
Otro ejemplo sería replicar una estructura de directorios en varios servidores:
tar cvjf fichero.tar.bz2 directorio_a_copiar | tee >(ssh usuario1@ip1 'tar xjvf -') | tee >(ssh usuario2@ip2 'tar xjvf -') | ssh usuario3@ip3 'tar xjvf -'
Evidentemente debemos sustituir usuariox por el nombre de usuario e ipx por la IP correspondiente.
Articulos similares:
- Hacer un TAR remoto vía SSH (24 diciembre 2008)
- VIM: utilizar ‘sudo’ dentro del vim para dar permisos de escritura (7 abril 2009)
- NETCAT: copiar ficheros remotamente (6 febrero 2009)
- iVPN (13 noviembre 2008)
- VIM: Editar un fichero remotamente (1 abril 2009)
































