rsync (Remote Sync) es una herramienta que permite sincronizar los ficheros y directorios que tenemos guardados en un sitio a otro diferente minimizando la transferencia de datos. Lo que diferencia a rsync de otros comandos o utilidades es que cuando se copian datos, solamente se copian aquellos que han sido modificados o que han cambiado desde la última vez que se copiaron. Es decir, permite hacer copias de seguridad incrementales y/o diferenciales.Tipos de Copia de Seguridad - Backup
- Un backup completo almacena toda la información que se desea guardar. La restauración es sencilla, pero tiene el inconveniente de que cada vez que se realiza un backup el espacio necesario en disco es igual al de los datos originales, con lo que es muy poco eficiente.
- Un backup incremental copia únicamente los archivos que han cambiado desde el anterior backup. Por ello es muy eficiente en términos de espacio en disco, pero tiene la desventaja de que la restauración de datos es más complicada, ya que hay que restaurar el último backup completo y a continuación cada backup incremental hasta llegar al último.
- El backup diferencial trata de minimizar este problema. Un backup diferencial almacena sólo los archivos que han cambiado desde el último backup completo.
Realizar copias de seguridad. Las copias de seguridad nos ayudan a no perder nuestra información y disponer de una versión de respaldo en caso de perder la original. Nuestra recomendación es que, además, cifres las copias y sigas la estrategia 3-2-1:
- Mantener 3 copias de seguridad: una principal con la que trabajar y dos de “backups”.
- Mantener la información en 2 tipos de almacenamiento distintos, por ejemplo, en un disco duro y en la nube.
- Mantener 1 copia de seguridad fuera de nuestra casa.
rsync puede copiar archivos desde:
- un sistema local a otro sistema local
- un sistema local a un sistema remoto
- un sistema remoto a un sistema local
Fichero configuración daemon
/etc/rsyncd.conf
De forma predeterminada, cuando usas rsync de forma remota, se está conectando directamente al servicio rsync en el puerto 873. Tenlo en cuenta a la hora configurar las reglas y los permisos del firewall.
Funciones básicas
- Sincronizar ficheros
- Copiar sólo los ficheros o directorios nuevos
- Transferir archivos o no según el tamaño
- Excluir directorios o ficheros
- Crear snapshots (Copia instantánea de volumen)
- Permite comprimir y cifrar
- Limitar la velocidad
Sintaxis
$ rsync [opciones] origen [| origen...] [destino]
Opciones básicas
-tPreserva los tiempos de modificación de los archivos que están siendo transferidos.-qSuprime todos los mensajes que no sean de error, este parámetro es contrario al parámetro -v que muestra mucha más información de la transferencia.-dCopia los archivos de un directorio sin utilizar recursividad para copiar los directorios internos, en decir, solo los archivos son transferidos.-lCopia los symlinks como symlinks-LCopia los archivo a los que un symlink está apuntando cuando encuentre un symlink.-WCopia archivos enteros, ya que cuando utilizamos el algoritmo de delta-transfer solo se copia la parte de un archivo que fue actualizada, algunas veces esto no es deseado.--progressMuestra el progreso de los archivos que están siendo transferidos.-hMuestra la información que proveersyncen un formato más legible, las cantidades son dadas en K's, M's, G's, y así sucesivamente.
-m: no envía los directorios vacíos
–update Actualiza los ficheros en el destino SÓLO si el origen de la copia han sido modificados
- Hay una interfaz para GNOME – grsync – que permite usarlo mediante una aplicación gráfica.
- También existe rdiff-backup – más funcional que rsync para hacer backups (tiene una GUI: Keep).
- También existe: RsyncX - GUI Rsync para Mac
Borrando ficheros o directorios copiados
–remove-source-files
--del an alias for --delete-during
--delete delete extraneous files from destination dirs
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during transfer, not before
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from destination dirs
--ignore-errors delete even if there are I/O errors
--force force deletion of directories even if not empty
--max-delete=NUM don't delete more than NUM files
Incluyendo y excluyendo ficheros del backup
--exclude=PATTERN exclude files matching PATTERN --exclude-from=FILE read exclude patterns from FILE --include=PATTERN don't exclude files matching PATTERN --include-from=FILE read include patterns from FILE --files-from=FILE read list of source-file names from FILE
- --exclude=PATTERN Excluir archivos que coinciden con la expresión PATTERN
- --exclude-from=FILE Obtener el conjunto de expresiones del archivo especificado por FILE
- --include=PATTERN No excluir los archivos que coinciden con la expresión PATTERN
- --include-from=FILE Obtener el conjunto de expresiones del archivo especificado por FILE
- --files-from=FILE Incluir los archivos especificados en el archivo FILE
$ rsync [opciones] origen
destino
|
-v
|
--verbose
|
Muestra información a
través del terminal.
|
-e
|
--rsh=command
|
Especifica la consola
Shell a utilizar.
|
-a
|
--archive
|
Modo archivado: recursivo,
copia enlaces, mantiene los permisos, la fecha de modificación,
la información de grupos, propietarios y los archivos de
dispositivos.
|
-r
|
--recursive
|
Recusividad para todos los
directorios.
|
--delete
|
Elimina archivos ajenos a
la fuente de origen.
|
|
-z
|
--compress
|
Comprime archivos durante
la transferencia.
|
--progress
|
Muestra una barra de
progreso
|
Configuraciones para establecer restricciones:
--exclude='pattern'
|
Excluye los archivos y
directorios que obedecen el patrón.
|
--include='pattern'
|
Excluye los archivos y
directorios que siguen el patrón.
|
--max-size=size
|
Excluye todos los archivos
que superen el límite superior.
|
--min-size=size
|
Excluye todos los archivos
y ficheros que no lleguen al límite inferior.
|
--bwlimit=kpbs
|
Límite del ancho de banda
en kilo bytes por segundo.
|
Compresión
--zc=zlib --zl=6
Ejemplos uso rsync
$ rsync -vaz --delete /media/hd1/Fotos /media/hd2/Backup_Fotos
$rsync -va /media/hd1/file /media/hd2/
- Pc local a pc remoto
$ rsync -vaz -- progress /tmp/ user@ns2.elhacker.net:/srv/Departmentos
$ rsync -vaz --max-size='10240k' --min-size='1024k' ~/Documentos user@ns2.elhacker.net:/srv/ProjectX
- Pc remoto a pc local
$ rsync -vaz --exclude='*' --include='*.zip' user@ns2.elhacker.net:~user/Documentos /media/hd2/mibackup
$ rsync -vaze ssh user@ns2.elhacker.net:~user/Documentos /media/hd2/mibackup
- Servidor remoto a servidor remoto
$ rsync –bwlimit=1024 -vaze ssh user@elhacker.net:/srv user@ns2.elhacker.net:/srv
Ejemplo con rsync para sincronizar y hacer un mirror (mirroring)
rsync -avz --delete --safe-links rsync.apache.org::apache-dist /path/to/mirror
Ejemplo para hacer un espejo de Ubuntu:rsync -a --bwlimit=128 rsync://archive.ubuntu.com/ubuntu /media/mirror/ubuntuEjemplo de mirror de FreeBSD:
rsync -vaz --delete ftp4.de.FreeBSD.org::FreeBSD/ /pub/FreeBSD/Ejemplo de mirror de CPAN:
rsync -av --delete cpan-rsync.perl.org::CPAN /project/CPAN/Ejemplo de mirror de RepoForge:
rsync -vai4CH --safe-links --delay-updates --delete rsync://a_Tier1_repoforge_mirror/repoforge/ /path/to/local/mirror/repoforge
Ejemplo de mirror de OpenSUSE:rsync -rlpt rsync.opensuse.org::opensuse-hotstuff-160gb /srv/pub/opensuse/ --delete-after -hi --stats


Una consulta, si hago el backup incremental(ej) de local a local después de haber hecho instalacion estándar y en la instalación estándar instale el office 2010 y le introduje la licencia.. el equipo que le hago backup queda con la clave o hay que ingresar una nueva licencia?
ResponderEliminarTengo algunos archivos de los que me interesa conservar las últimas versiones (3 o 4) para poder vovler a una de ellas en caso necesario. Si hago un backup incremental siempre me guarda la última versión pero no guarda las anteriores. ¿Como podría hacer esto?
ResponderEliminarexcelente blog justo los que buscaba felicitaciones!!!
ResponderEliminarSe puede utilizar el parámetro -a en conjunción con el parámetro -u
ResponderEliminar