sábado, julio 03, 2010

rsync - Guía Rápida

Linux tiene muchas herramientas para copiar y respaldar información. rsync es la favorita para muchos administradores.

rsync utiliza un algoritmo que permite transmitir eficientemente una estructura (como un archivo) a través de un canal de comunicación cuando el receptor ya tiene una versión diferente de la misma estructura. (wikipedia)

Copiar localmente

En su forma más simple lo podemos utilizar para copiar directorios enteros de forma local.
$ rsync -av /home/user/Docs /media/usb/backup/
-av lo ejecuta en modo verbose y archivo, práctica común para copia recursiva, conservar permisos y symlinks.

Copiar remotamente

Tanto el origen como el destino pueden ser otra computadora en la red.
$ rsync -avz /home/user/Docs user@online.backups.com:/backups/
agregamos -z para comprimir los datos sobre la red.

rsync puede tambier borrar archivos que ya no se encuentran en el origen pero si en el destino causa de alguna copia anterior. Es decir, que pasa si ya borramos algunos archivos de nuestro directorio de trabajo y queremos que también sean borrados de nuestro respaldo.
$ rsync -avz --del /home/user/Docs user@online.backups.com:/backups/
--del indica a rsync que borre los archivos que ya no están en el origen.

Directorio o archivos

Importante el último slash '/'. en:
$ rsync -avz --del /home/user/Docs user@online.backups.com:/backups/
estoy copiando el directorio 'Docs' dentro del directorio 'backups' pero si
$ rsync -avz --del /home/user/Docs/ user@online.backups.com:/backups/
estaré copiando los archivos dentro del directorio 'Docs' al directorio 'backups'

Copia incremental

$ rsync --backup --backup-dir=`date +%Y.%m.%d` -av /home/user/Docs/ /media/usb/backup/Docs/
--backup crea un respaldo --backup-dir crea el respaldo dentro de la jerarquía del directorio de destino. También se puede usar --suffix=SUFFIX para agregar un sufijo.

Apenas rascando la superficie de esta poderosa utilería. Para más información manpage.