Si queremos hacer una sincronización con rsync usando ssh para proteger nuestros datos, usamos el comando:
Desde un directorio remoto a un directorio local:
rsync -avz -e ssh usuario@ip-remota:/directorio/remoto /directorio/local
Desde un directorio local a un directorio remoto:
rsync -avz -e ssh /directorio/local usuario@ip-remota:/directorio/remoto
Desde un directorio local a otro directorio local:
rsync -avz -e ssh /directorio/local1 /directorio/local2
Las opciones:
-a: Usar recursividad manteniendo los permisos.
-v: Mostrar los archivos o directorios que va pasando.
-z: Comprimir los datos para que la transferencia sea más rápida.
-e ssh: Utilzar ssh.
--delete: Borra los datos en el directorio o archivo destino antes de pasar los nuevos.
Cada vez que ejecutemos rsync con ssh, nos va a pedir la clave del host remoto. Esto no nos va a servir si queremos colocar un proceso en Cron para que se ejecute automátimente. Así que automatizamos el logeo.
Generamos la claves RSA pública y privada:
ssh-keygen
Cuando nos pida el Passphrase (password, clave), sólo le damos a enter. Con esto se crean dos archivos:
/home/usuario/.ssh/id_rsa (clave privada)
/home/usuario/.ssh/id_rsa.pub (clave pública)
Ahora copiamos la clave pública generada (/home/usuario/.ssh/id_rsa.pub) al usuario host remoto con el que nos vamos a conectar. Si el usuario en el host remoto es debian, entonces copiamos el archivo a /home/debian/.ssh/id_rsa.pub. Suponiendo que el host remote es 192.168.0.2, probamos la conexión:
ssh debian@192.168.0.2
Si no nos pide passphrase, entonces ya podemos automatizar la replicación con Cron. Ejecutamos crontab -e y agregamos una de estas líneas según nuestra conveniencia:
#Hace una sincronización los lunes a la 1:00 am
0 1 * * 1 rsync -avz -e ssh debian@192.168.0.2:/directorio/remoto /directorio/local
#Hace una sincronización los domingos, martes, miercoles, jueves, viernes y sábados
0 1 * * 0,2-6 rsync -avz -e ssh debian@192.168.0.2:/directorio/remoto /directorio/local
#Hace una sincronización todos los días
0 0 * * * rsync -avz -e ssh debian@192.168.0.2:/directorio/remoto /directorio/local
No hay comentarios:
Publicar un comentario