Manuales de Informática

Sincronizar ficheros con Rsync y ssh

Primero vamos a decidir las opciones para rsync, en mi caso y como lo explico en el parrafo anterior requiero copiar todos los archivos al nuevo servidor, despues que copie solo los nuevos archivos y/o los modificados. Todo esto lo logro pasando las opciones -avz y -e ssh a rsync.

-a      para copiar recursivamente manteniendo privilegios, fecha de creacion, permisos, etc.;
-v      para incrementar el nivel de detalle de la operacion;
-z      para comprimir los datos, asi la transferencia es mas rapida;
-e ssh  para usar ssh para copiar los archivos de un servidor a otro.

Puedo usar tambien --delete-after para borrar los archivos que hayan sido borrados antes de realizar el backup en el servidor de logs.

Para ilustrar el ejemplo voy a asumir la siguiente configuracion:

Cita:

servidor de logs : 192.168.0.100
servidor web : 192.168.0.200
rsync lo voy a ejecutar con un cron en el servidor web

Procedimiento:
1.- Instalamos rsync en el servidor web, en Debian basta con hacer un:

aptitude install rsync

2.- Ejecutamos rsync en 192.168.0.200:

rsync -e ssh -avzn bot@192.168.0.100:/home/bot/logs/canal /var/www/logs/canal/

Si todo esta bien tendremos un mensaje indicando los archivos recibidos, la cantidad de bytes y la velocidad de transferencia.

3.- Hasta aqui todo esta bien, pero si necesitamos hacer esto automaticamente cada hora mediante cron tenemos que lograr que ssh no nos pida contrasena. Para lograrlo realizamos el siguiente procedimiento:

Creamos una llave publica y una llave privada:

ssh-keygen -tdsa

Presionando solo enter en todas las preguntas que el comando anterior requiere vamos a tener nuestra llave publica en /home/usuario/.ssh/id_dsa.pub. Copiamos esta llave al servidor 192.168.0.100:

cd /home/usuario/.ssh/
cat id_dsa.pub | ssh bot@192.168.0.100 "cat - >> /home/bot/.ssh/authorized_keys"

Probamos que todo funcione haciendo:

ssh -l bot 192.168.0.100

Si no nos pide contrasena... podemos continuar con el siguiente paso.

4.- Ahora que 192.168.0.100 no nos pide contrasena podemos automatizar el proceso. Debemos ejecutar este comando en 192.168.0.200 como una tarea cada n cantidad de tiempo y desde luego podemos tener un registro de que archivos se van copiando:

crontab -e

Para ejecutar el backup cada hora agregamos en 192.168.0.200:

0 * * * * rsync -e ssh -avz bot@192.168.0.100:/home/bot/logs/canal /var/www/logs/canal/ 2>&1 > /var/log/rsync-backup.log
 
 
BORRAR SSH
 
$ cd
$ rm .ssh/known_hosts
$ ssh ras.mydomain.com
 

 




Quizá te interese:
Articulos más populares


Otros artículos de interés
Como Afiliado de Amazon, obtengo ganancias de las compras adscritas que se generen a través de este sitio web.

Ir a página principal | Blog | Pregunta
Este sitio web usa cookies, puedes ver la política de cookies, aquí -
Política de cookies