Hace algunas semanas atrás tuve la oportunidad de sincronizar 2 servidores remotos, se trataba de hacer respaldos en un servidor y enviarlos a otro de manera automática, utilizando ssh y evitando escribir la clave del servidor remoto..
Lo primero que hay que tener en cuenta es que utilizaremos rsync, ssh y necesitaremos generar una clave pública y privada.. entonces empecemos.
Describiré al servidor de donde obtendré como ORIGEN y al servidor donde lo depositaré como DESTINO..
Generar las claves en el servidor ORIGEN:
origen:# ssh-keygen -t rsa -b 2048 |
Lo que sigue es copiar el archivo id_rsa.pub generado y enviarlo al servidor destino..
origen:# ssh-copy-id -i /home/jack/.ssh/id_rsa.pub jack@servidor-destino.local |
En este momento la salida del comando anterior les dirá que hagan una prueba y se conecten al servidor destino.. que en mi caso aparece:
Now try logging into the machine, with "ssh 'jack@servidor-destino.local'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. |
Y pues vamos a probarlo.. queremos estar seguros de que funciona lo que estamos haciendo.. esto lo hacemos desde el servidor ORIGEN.
origen:# ssh jack@servidor-destino.local |
Ahora sin necesidad de escribir la clave del servidor DESTINO tendrán acceso a éste.. y hasta aquí ya esta casi todo el trabajo hecho.. Luego terminan la sesion en el servidor DESTINO para regresar al servidor ORIGEN.. ya casi para terminar lo único que faltaría es tomar el archivo o carpeta que deseamos enviar del servidor ORIGEN al servidor DESTINO.. y para estoy hacemos lo siguiente:
origen# rsync -avz -e ssh /home/jack/respaldos/* jack@servidor-destino.local:/home/respaldos/ |
Y verán aparecer una lista de todos los archivos que estan en su carpeta de respaldo que de forma equivalente en mi caso es /home/jack/respaldos/
Cualquier error en la transferencia la verán inmediatamente.. pueda que tengan problemas pero creo que sería por cosa de permisos..
Antes de que se me olvide.. les recuerdo de que desde el servidor ORIGEN todos los comandos los deben ejecutar en modo root.
Espero les sirva el tip.