Cuando quieres hacer una copia de seguridad de un servidor y el volumen de datos empieza a ser grande se impone la necesidad de hacerlo de forma “inteligente”. Ya no sirve hacer un pelotazo.tar.gz y descargarlo por ftp.
Es el momento de implementar rsync + ssh. Que resumiendo y a groso modo nos permitirá sincronizar los dos ordenadores ( servidor y cliente en el que haremos la copia de seguridad) a traves de una conexión segura de SSH.
Usaré Apolonia como servidor del que quiero hacer la copia de seguridad.
Y Ola será el cliente en el que quiero dejar las copias de seguridad. De este modo si tengo algún problema en el servidor siempre tendré una copia en el cliente.
Lo primero es instalar y configurar los paquetes. Como que ambas máquinas son Debianitas en ambas máquinas haremos:
apt-get install openssh-blacklist openssh-server openssh-client ssh rsync
Ahora queremos configuar SSH de modo que podamos acceder con el rsync sin intervención nuestra para poner la clave de acceso. Por lo que vamos a hacerlo de modo que podamos acceder a traves de ssh sin poner clave. Sólo usando un fichero de clave.
Es el cliente Ola en mi caso el que se va a conectar al servidor Apolonia para sincronizar sus directorios de copia de seguridad con los del servidor.
Es por eso por lo que es el cliente Ola quien va a generar un par de ficheros de clave (publica y privada). Esto es para que, cuando nos intentemos conectar DESDE Ola a Apolonia, Apolonia reconozca a Ola y no nos pida clave.
Como que queremos usarlo con rsync y queremos hacer copias de ficheros y directorios de configuración que pertenecen a root lo vamos a hacer todo como usuario root.
ola:~# ssh-keygen
En pantalla nos aparecerá algo tal que asi
ola:~/.ssh# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/EL_NOMBRE_QUE_TU_QUIERAS Enter passphrase (empty for no passphrase):[ENTER] Enter same passphrase again:[ENTER] Your identification has been saved in EL_NOMBRE_QUE_TU_QUIERAS. Your public key has been saved in EL_NOMBRE_QUE_TU_QUIERAS.pub. The key fingerprint is: aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa root@ola
Y ya tienes tus ficheritos de llaves en /root/.ssh/
ola:~#cd /root/.ssh/ ola:~/.ssh#ls EL_NOMBRE_QUE_TU_QUIERAS EL_NOMBRE_QUE_TU_QUIERAS.pub
Ahora tienes que copiar el archivo público EL_NOMBRE_QUE_TU_QUIERAS.pub en el servidor. Por ahi dicen que se puede hacer meduante:
#scp root@ola:/root/.ssh/EL_NOMBRE_QUE_TU_QUIERAS.pub /home_servidor/
Pero a mi no me ha funcionado … o no he sabido encontrar donde me lo ha dejado. Yo la he copiado mediante copy-paste. Aunque puedes hacerlo como te de la gana. Usas una llabe usb, por ftp, te lo envias por email. de cualquier forma.
Lo importante es incluir el contenido de EL_NOMBRE_QUE_TU_QUIERAS.pub dentro de el fichero /root/.ssh/authorized_keys del servidor (Apolonia).
Por lo que en Apolonia haces:
apolonia:~# cat EL_NOMBRE_QUE_TU_QUIERAS.pub > /root/.ssh/authorized_keys
¡y ya está! Ahora desde Ola puedes acceder a Apolonia gracias a que Apolonia reconoce a Ola. Simplemente le tienes que decir que se conecte mediante ssh usando el archivo de llave EL_NOMBRE_QUE_TU_QUIERAS que el usuario será root en el servidor apolonia ( tambien puedes poner la ip )
ssh -i /root/.ssh/EL_NOMBRE_QUE_TU_QUIERAS -p 29 root@apolonia
Y ya estás dentro!
Ahora queremos:
Sincronizar lo que hay en la carpeta remota (/home/juantxu/tmp) de apolonia en nuestra carpeta local (Ola) para este test (/home/juantxu/test)
Lo vamos a hacer mediante ssh por lo que le indicaremos a rsync que use ssh para conectarse :
-e "ssh + parametros de ssh"
Los parametros más comunes para hacer una mera copia del arbol de directorios que cuelga de nuestra carpeta origen es:
Por lo que nuestro comando queda tal que así:
rsync -avz --delete -e "ssh -p 99 -i /root/.ssh/ola_rsa" root@apolonia:/home/juantxu/tmp/ /home/juantxu/test