Obtener dinero con AdFly

jueves, 14 de abril de 2011

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

No hay comentarios:

Publicar un comentario