Sincronización con Rsync y SSH

     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 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

Comentarios

Entradas más populares de este blog

Pi Network Apps published on Pi Network Ecosystem

Proyecto para Red Social gigante (Giant Social Network project)

Sígueme en mis Redes Sociales (Follow me in my Social Networks). OpenSource Expert 🇻🇪