jueves, 31 de mayo de 2012

Sincronización de Carpetas entre Equipos con Rsync

En mi día a día, trabajo indistintamente con diferentes computadoras; cada una de ellas tiene un fin especifico, esto me ha sido muy útil en realidad, pero ha traído consigo la necesidad de tener la misma información en todos los equipos (si, de verdad necesito esa redundancia de datos).

La Solución a este problema ya la conozco desde hace tiempo, sincronizar los contenidos entre equipos.... Ahora, debo decir que por diversas situaciones (mas que todo falta de ponerme las pilas con esto), no la había implementado y mucho menos comentado aquí, pero ya ha llegado el momento...

Opción 1: La nube;


Esta posibilidad siempre me ha resultado muy interesante, sobre todo porque la mayoría de los servicios en la red cuentan con aplicaciones para dispositivos móviles y al tener yo un par de estos equipos (iPod Touch, SmartPhone Android) la solución va como anillo al dedo.

Las posibilidades son muchas y la verdad que es necesario que nos sentemos un buen rato a leer contratos de licencias, pros, contras, opiniones y review sobre este tema ya que de estos servicios siempre hay mucho que hablar. En cualquier caso, ir mas allá con los temas no es la idea de este post, así que solo me limitare a comentar un par de opciones:
  • Gdrive: del servicio de almacenamiento en la red de Google mucho se hablo y durante un buen tiempo, las especulaciones sobre la propiedad de los archivos que allí se suban y otros temas mas dan polémica a la elección, pero su integración con los demás servicios han restado importancia a esto. El servicio es muy competitivo al ofrecer 5 Gb, pero al ser nuevo cuenta con aplicaciones para solo algunas plataformas.
  • Dropbox: muy conocido en el mundo del almacenamiento en la nube, de este servicio mucho se ha hablado por la temática de sus políticas de seguridad, la forma en la que trata los archivos y en fin, otro montón de cosas, pero en cualquier caso cuenta con un muy envidiable numero de usuarios y app para casi todas las plataformas lo que lo hace una opción nada despreciable.
  • owncloud: te gusta hacer las cosas por ti mismo y no depender de los demás..., crees que tu información es muy importante para dejarla en los servidores de otros..., tienes conocimientos, un buen proveedor de internet y la posibilidad de dejar tu equipo encendido y conectado 24/7; si alguno de esos es tu caso pues esta puede llegar a ser una opción para ti, pero documentate bien antes de hacer nada.
En mi caso, yo he instalado en mis equipos y dispositivos móviles la app de dropbox y por ese medio comparto alguna de mi información, no puedo negar en ningún momento su utilidad y beneficios, pero para mi necesidad esto es solo una solución a medias ya que el volumen de datos sobrepasa con creces lo ofrecido por dropbox, no pienso pagar por el servicio y tampoco me confió en colocar cosas importantes que he desarrollado allí (seguro mato a confianza -como dicen en mi país)...

Opción 2: Rsync;


Y en esta me quede.... rsync es una aplicación libre para sistemas de tipo Unix y Microsoft Windows que ofrece transmisión eficiente de datos incrementales, que opera también con datos comprimidos y cifrados.

Mediante una técnica de delta encoding, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos.

Una característica importante de rsync no encontrada en la mayoría de programas o protocolos es que la copia toma lugar con sólo una transmisión en cada dirección. rsync puede copiar o mostrar directorios contenidos y copia de archivos, opcionalmente usando compresión y recursión.

Actuando como un daemon de servidor, rsync escucha por defecto el puerto TCP 873, sirviendo archivos en el protocolo nativo rsync o via un terminal remoto como RSH o SSH. En el último caso, el ejecutable del cliente rsync debe ser instalado en el host local y remoto.

rsync se distribuye bajo la licencia GNU General Public License.

Sincronizando con Rsync:

Caso 1, Sincronizando medios extraibles: En este ejemplo el directorio origen es /home/usuario y vamos a sincronizarlo con un directorio destino (/media/disco/copia_usuario ) que puede estar en otra partición del disco duro, o en otro disco duro externo, o en un pendrive de suficiente capacidad. Ejecutar en una terminal el comando siguiente:

rsync -avrz /home/usuario/  /media/disco/copia_usuario

Breve explicación de las opciones:

opción -a preserva las propiedades del fichero (permisos, timestamps…)
opción -v verbose (para poder ver lo que hace)
opción -r recursivo, para sincronizar los subdirectorios
opción -z, lo que activaría la compresión en destino.
opción –delete elimina en destino los ficheros que no están en el origen

Caso 2, Sincronizando entre equipos: En este otro ejemplo el directorio origen es /home/usuario y vamos a sincronizarlo con ese mismo directorio, pero en otro maquina (10.0.0.200/home/usuario) que puede estar en otra partición del disco duro, o en otro disco duro externo, o en un pendrive de suficiente capacidad. Ejecutar en una terminal el comando siguiente:

rsync -avrz /home/usuario/  10.0.0.200:/home/usuario

En cualquier caso, es posible que creemos una serie de scripts que nos hagan la tarea mucho mas sencilla y automatizada, pero de ello hablare en un próximo post... (aun debo hacer los scripts y probarlos).

Grsync:

Esta aplicación hecha en Perl, se puede usar para sincronizar desde el entorno grafico. Puede ser utilizado eficazmente para sincronizar directorios locales y remotos. Por ejemplo, algunas personas usan grsync para sincronizar su colección de música con un dispositivo extraible o una copia de seguridad de archivos personales a una unidad de red.


Tiene una única “ventana”, en la que se selecciona el nombre de la sesión, la carpeta de origen (la que se va a copiar/sincronizar) y la carpeta de destino (con la que se va a sincronizar)



6 comentarios:

Anónimo dijo...

Hola. he leído con atención esta entrada de tu blog. Interesante, aunque tengo que hacerte un "reproche" que hacerte. Resulta algo cansino para la vista leer letras en cursiva, blancas y sobre un fondo negro. Enfin, cada uno hace lo que quiere con su blog. Esto sólo es una opinión. Yo pondría colores más suaves, que hagan la lectura más agradable. Un saludo desde España.

Anónimo dijo...

Hola. he leído con atención esta entrada de tu blog. Interesante, aunque tengo que hacerte un "reproche" que hacerte. Resulta algo cansino para la vista leer letras en cursiva, blancas y sobre un fondo negro. Enfin, cada uno hace lo que quiere con su blog. Esto sólo es una opinión. Yo pondría colores más suaves, que hagan la lectura más agradable. Un saludo desde España.

Unknown dijo...

Hola, primero que nada gracias por la opinión, estas son las que ayudan a construir y mejorar estos entornos. La verdad debo decir que desde hace buen tiempo no tengo oportunidad de mejorar o actualizar el diseño del blog.

Para una oportunidad tendré pendiente la nota.

Saludos

leoslax dijo...

Buen día Carlos! Te saludo desde San Juan - Argentina.

Me gustó mucho tu blog, y sobre todo este artículo. Es exactamente lo que quería leer.

Un abrazo y sigue adelante.

leoslax dijo...

Buenos días Carlos, te mando un saludo desde San Juan - Argentina.

Muchas gracias por el artículo. Es justo lo que buscaba.

Espero que sigas adelante. Un abrazo!

Unknown dijo...

Muy Buenas tardes desde Caracas Venezuela,

Que bueno saber que estas notas te resulten útiles, esa es la idea, publicar y esperar que puedan ayudar a alguien.

Saludos