Rsync – Backups y Sincronizar directorios o carpetas.
Posted in Scripting, Sistemas, Utilidades on Mar 15th, 2010
Existe una utilidad en linux (desarrollada también para windows) llamada rsync.

Vía: wikipedia.org
. rsync es una aplicación de software para sistemas de tipo Unix que ofrece transmisión eficiente de datos incrementales 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.
En modalidad de “Daemon” 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.
Lanzado bajo la licencia GNU General Public License, rsync es software libre.
La buena noticia es que esta herramienta libre esta desarrollada tanto para Unix (Solaris) / Linux y Windows. Por lo que es una alternativa bastante interesante a costosos sistemas de pago (no libres) de backup y sincronización de directorios.
En ubuntu 9.10 ya viene instalado rsync.
Existe una interfaz gráfica para el uso de esta herramienta llamada Grsync. (No permite toda la potencia de rsync pero es una buena idea para ciertas situaciones)
Un script ejemplo de uso de rsync ( vía: http://bioinformatiquillo.wordpress.com/2008/06/16/grsync-gui-gtk-para-rsync/ )
#!/bin/bash COMMAND=”rsync -r -t -p -o -g -x -v –progress –delete” SOURCE=”/home/jose” DESTINATION=”jose@servidor_destino:/home/jose/backup” DIR=”Documentos” echo “$DIR” eval $COMMAND “$SOURCE/$DIR/” “$DESTINATION/$DIR”
Otro ejemplo (vía: http://www.ubuntu-es.org/index.php?q=node/60946 ) bastante interesante para hacer copias locales y en remoto:
. RSYNC COPIA LOCAL
rsync -altgvb /var/www/ /home/gabo/Respaldos/backup_www
RSYNC SSH – COPIA A UN SERVER.
rsync -e ssh -altgvb /leo/ root@192.168.1.4:/home/leo/CMO
- Hasta aqui todo esta bien, pero si necesitamos hacer esto automaticamente cada hora mediante cron tenemos que lograr que ssh no nos pida contraseña. Para lograrlo realizamos el siguiente procedimiento:
Creamos una llave publica y una llave privada:
ssh-keygen -tdsaPresionando 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.1.4:
cd /home/usuario/.ssh/
cat id_dsa.pub | ssh bot@192.168.1.4 “cat – >> /home/bot/.ssh/authorized_keys”Probamos que todo funcione haciendo:
ssh -l bot 192.168.1.4
Y un último ejemplo: Como sincronizar tu pendrive con una carpeta de tu disco duro, para tener copias de seguridad:
. Copia de seguridad del pendrive con rsync
Referencias:
* http://es.wikipedia.org/wiki/Rsync
* http://bioinformatiquillo.wordpress.com/2008/06/16/grsync-gui-gtk-para-rsync/
* http://www.opbyte.it/grsync/




























Información Bitacoras.com…
Valora en Bitacoras.com: Existe una utilidad en linux (desarrollada también para windows) llamada rsync. Vía: wikipedia.org . rsync es una aplicación de software para sistemas de tipo Unix que ofrece transmisión eficiente de datos increme……
Hola Amigos.
Como puedo hacer para sincronizar todo el disco?, es un linux centos como servidor web, la idea es que el server remoto quede operando tal cual como el source.
Saludos.
Para ese escenario investigaría como implementar un Cluster web server Apache.
salu2.
Otras referencias:
Backups / Rsync
* Rsync to backup server using ssh: https://calomel.org/backup_server_rsync.html
* Rsync backing up local user data: https://calomel.org/backup_user_rsync.html
* Rsync hints, tips and examples: https://calomel.org/rsync_tips.html