fbpx
Wikipedia

rsync

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.

rsync
Información general
Tipo de programa utilidad
Desarrollador Wayne Davidson
Lanzamiento inicial 19 de junio de 1996
Licencia GNU General Public License
Estado actual En desarrollo
Información técnica
Programado en C
Plataformas admitidas tipo Unix
Versiones
Última versión estable 3.2.3 (info) 7 de agosto de 2020 (1 año y 9 días)
Última versión en pruebas () 6 de agosto de 2020 (1 año y 10 días)
Asistencia técnica
Enlaces
Sitio web oficial
Repositorio de código

Actuando como un daemon de servidor, rsync escucha por defecto el puerto TCP 873, sirviendo archivos en el protocolo nativo rsync o vía 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.

Historia

Los autores originales son Andrew Tridgell y Paul Mackerras. Tridgell usó rsync como el tema de su tesis para su grado de PhD en la Australian National University.[1]

rsync fue anunciado por primera vez el 19 de junio de 1996.[2]

Rsync 3.0 fue lanzado el 1 de marzo de 2008.[3]

Algoritmo

El algoritmo en que se basa rsync fue creado por el programador australiano Andrew Tridgell, 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. Su funcionamiento a grandes rasgos es el siguiente:

  • El receptor divide su copia del archivo en bloques de tamaño fijo S, no solapados, y calcula dos sumas de verificación (checksum) para cada bloque: el hash MD4, y un ‘rolling checksum’ más débil. Luego envía estos checksums al emisor. La versión 30 del protocolo (lanzado con rsync versión 3.0.0) ahora utiliza MD5 en lugar de MD4.[4]
  • El emisor calcula el rolling checksum para cada posible bloque de tamaño S, solapando bloques. Esto se puede hacer eficientemente gracias a una propiedad del rolling checksum: si el rolling checksum de los bytes n a n+S-1 es R, se puede calcular el checksum de los bytes n+1 a n+S a partir del byte n, el byte n+S y R, sin tener que examinar los bytes intermedios. Entonces, si ya se ha calculado el rolling checksum de los bytes 1 a 25, se puede calcular el rolling checksum de los bytes 2 a 26 de manera separada a partir del checksum anterior, y de los bytes 1 y 26.
  • El rolling checksum usado en rsync está basado en el checksum adler-32, de Mark Adler, que es utilizado en zlib y que está basado a su vez en el checksum de Fletcher.
  • El emisor compara entonces sus rolling checksums con los enviados por el receptor para determinar si existen coincidencias. Cuando las encuentra, verifica calculando el checksum MD4 para el bloque propio coincidente y comparando con el del bloque del receptor.
  • Finalizado el proceso el emisor envía únicamente los bloques para los cuales no se encontró ninguna coincidencia, junto con instrucciones para su ensamblado en la versión del receptor. En la práctica, esto crea un archivo idéntico a la copia del emisor. Sin embargo, es en principio posible que la copia del receptor sea distinta en este punto del emisor: esto puede pasar cuando los dos archivos tienen pedazos diferentes con el mismo hash y rolling checksum. Cabe destacar que las posibilidades de que esto suceda son en la práctica extremadamente remotas. Si las versiones del archivo del emisor y receptor tienen muchas secciones en común, la utilidad necesita transmitir pocos datos para sincronizar los archivos.

Características y aplicaciones

Mientras que el algoritmo rsync forma parte del núcleo de la aplicación rsync y esencialmente optimiza las transferencias entre dos computadoras sobre TCP/IP, la aplicación rsync provee otras funciones que asisten en la transferencia. Estas incluyen compresión y descompresión de los datos bloque por bloque, utilizando zlib al enviar y recibir, y soporte para protocolos de cifrado, tal como SSH, lo que permite transmisión cifrada y eficientemente diferenciada de datos comprimidos usando el algoritmo rsync.

Adicionalmente puede utilizarse una aplicación de tunneling también para crear un túnel cifrado que asegure los datos transmitidos.

Además de archivos, el algoritmo permite copiar directorios, aún recursivamente, así como vínculos, dispositivos, grupos y permisos. No requiere por defecto privilegios de root para su uso.

rsync fue escrito como un reemplazo de rcp y SCP. Una de las primeras aplicaciones de rsync fue la creación de un espejo (mirroring) o copia de respaldo de múltiples clientes Unix dentro de un servidor Unix central, usando rsync/ssh y cuentas estándares de Unix. Habitualmente se ejecuta mediante herramientas de scheduling como cron, para automatizar procesos de sincronización entre múltiples computadoras host y servidores centrales.

Uso de la aplicación Rsync

La invocación más simple de la aplicación a través de línea de órdenes tiene la siguiente forma:

 rsync [OPCIONES]... ORIGEN [ORIGEN]... DESTINO 

La simplicidad de la aplicación se puede ver en el siguiente ejemplo (se utilizan opciones largas para facilitar su explicación, pero también se pueden utilizar opciones abreviadas):

 rsync --verbose --compress --rsh=/usr/local/bin/ssh --recursive \ --times --perms --links --delete --exclude "*bak" --exclude "*~" \ /www/* webserver:/www 

Esta orden ejecuta rsync en modo verboso (muestra mensajes de estado por la salida estándar), con compresión, a través de ssh, en forma recursiva para los subdirectorios, preservando fechas y permisos del archivo origen, incluyendo vínculos, borrando archivos que fueron borrados en el directorio origen, excluyendo backups y archivos temporales (*bak, *~); el origen es el contenido del directorio /www y el destino el directorio /www en el host webserver.

Adicionalmente es necesario configurar uno de los puntos hosts como servidor rsync, ejecutando rsync en modo daemon:

 rsync --daemon 

y configurando el archivo /etc/rsyncd.conf.

Una vez configurado un servidor, cualquier máquina con rsync instalado puede sincronizar archivos hacia o desde éste.

Para sincronizar dos carpetas usando las opciones abreviadas:

 rsync -au --delete 

En el siguiente ejemplo se sincronizan dos carpetas usando las opciones abreviadas, y la información es enviada a un archivo cuyo nombre es la fecha y hora de la sincronización. Los archivos existentes en la carpeta destino que no existen en la carpeta origen, son borrados al finalizar la transferencia de datos:

 rsync -auv --delete-after /carpetaorigen /carpetadestino>`date +"%d-%b-%Y-%H:%M"`.log 

Variantes

Existen otras utilidades basadas en el algoritmo de rsync.

  • rdiff, que genera archivos delta con la diferencia entre dos archivos, que puede ser aplicada a uno para convertirlo en el otro en cualquier momento.
  • rdiff-backup, que utiliza rdiff para mantener espejos de backup de un directorio a través de una red. Rdiff-backup almacena delta rdiff incrementales, lo que permite recrear el directorio en cualquier punto de backup.

Existen además versiones para otros sistemas operativos, como rsyncX, una versión para Mac OS X que permite transferir forks de recursos, y que en su versión rsyncXCD permite además crear particiones booteables.

Incluso es posible utilizar rsync en Microsoft Windows, a través de Cygwin.

Instalación

rsync debe instalarse en la máquina tanto de origen como de destino.[5]

Interfaces gráficas

  • Grsync — Front-end GTK.
  • gutback — Wrapper de rsync escrito en Shell.
  • JotaSync — Interfaz Java Swing para rsync con planificador integrado.
  • luckyBackup — Front-end Qt escrito en C++.

Otras herramientas que usan rsync son rdiff-backup y osync

Como alternativa de cp/mv

rsync se puede usar como una alternativa avanzada para la orden cp o mv, especialmente para copiar archivos más grandes:

$ rsync -P source destination 

La opción -P es la misma que Ic|--partial --progress, que mantiene los archivos parcialmente transferidos y muestra una barra de progreso de la transferencia.

Es posible que desee utilizar la opción -r/--recursive para recoger recursivamente el contenido de los directorios.

Los archivos se pueden copiar localmente como con cp, pero el propósito motivador de rsync es copiar archivos de forma remota, es decir, entre dos servidores diferentes. Las ubicaciones remotas se pueden especificar con una sintaxis de dos puntos entre servidores:

$ rsync source host:destination 

o

$ rsync host:source destination 

Las transferencias de archivos en red utilizan el protocolo SSH de forma predeterminada y host puede ser un nombre de equipo real o un perfil/alias predefinido desde .ssh/config.

Ya sea que transfiera archivos de forma local o remota, rsync primero crea una lista de archivos que contiene información (de manera predeterminada, el tamaño del archivo y la última marca de tiempo de modificación) que luego se utilizará para determinar si el archivo necesita ser construido. Para cada archivo que se construirá, se encuentra una suma de comprobación débil y fuerte para todos los bloques, de modo que cada bloque tenga una longitud de S bytes, que no se superponga y que tenga un desplazamiento que sea divisible por S. Con esta información, se puede construir un archivo grande usando rsync sin tener que transferir todo el archivo. Para obtener una explicación práctica y matemática detallada, remítase a how rsync works y the rsync algorithm, respectivamente.

Para pasar a rsync valores predeterminados rápidamente, se pueden usar algunos alias:

function cpr() { rsync --archive -hh --partial --info=stats1 --info=progress2 --modify-window=1 "$@" } 
function mvr() { rsync --archive -hh --partial --info=stats1 --info=progress2 --modify-window=1 --remove-source-files "$@" } 

El uso del término checksum («suma de verificación») no es asimilable al comportamiento de la opción --checksum. La opción --checksum afecta a la heurística del archivo utilizada antes de transferir cualquier archivo. Independientemente de la opción ic|--checksum, siempre se usa una «suma de verificación» (checksum) para la construcción de archivos basada en bloques, que es como rynsc transfiere un archivo.[5]

Lidiar con la barra diagonal

Arch por defecto usa «cp» de GNU. Sin embargo, rsync sigue la convención de BSD para «cp», que da un tratamiento especial a los directorios de origen con una bara diagonal «/». A pesar de que:

$ rsync -r source destination 

crea un directorio «destination/source» con el contenido de «source»;

y la orden:

$ rsync -r source/ destination 

copia todos los archivos presentes en «source/» directamente a «destination», sin subdirectorio intermedio, como si lo hubiera invocado así:

$ rsync -r source/. destination 

Este comportamiento es diferente al de GNU para cp, que trata «source» y «source/» de forma idéntica (pero no «source/.»). Además, algunos intérpretes de órdenes añaden automáticamente la barra inclinada final cuando se completan los nombres de directorios con el tabulador. Debido a estos factores, puede haber cierta tendencia entre los usuarios de rsync nuevos u ocasionales a olvidarse del comportamiento diferente de rsync, y sin darse cuenta provoquen un desastre o incluso sobrescribir archivos importantes al dejar la barra diagonal en la línea de órdenes.

Por lo tanto, puede ser prudente usar un script para eliminar automáticamente las barras diagonales finales antes de invocar rsync:

#!/bin/zsh new_args=(); for i in "$@"; do case $i in /) i=/;; */) i=${i%/};; esac new_args+=$i; done exec rsync "${(@)new_args}" 

Este script se puede colocar en algún lugar de la ruta y crear un alias a rsync en el archivo de inicio de shell.

Como herramienta para realizar copias de seguridad

El protocolo rsync puede usarse fácilmente para realizar copias de seguridad, transfiriendo solo los archivos que han cambiado desde la última copia de seguridad. Esta sección describe un script para realizar copias de seguridad programada muy simple que utiliza rsync, el cual generalmente se utiliza para realizar copias a medios extraíbles.[5]

Realizar copia de seguridad automatizada

A modo de ejemplo, el script se creará en el directorio /etc/cron.daily, y se ejecutará diariamente si un demonio cron está instalado y configurado correctamente.

Primero, cree un script que contenga las opciones de órdenes apropiadas:

/etc/cron.daily/backup 
#!/bin/bash rsync -a --delete --quiet /folder/to/backup /location/of/backup 
-a : indica que los archivos deben archivarse, lo que significa que la mayoría de sus características se conservan (no así las ACL, enlaces duros o atributos extendidos como capacidades) 
--delete : significa que los archivos eliminados en origen también serán eliminados en la copia de seguridad 

Aquí, /folder/to/backup debe cambiarse por aquello que quiere respaldar (/home, por ejemplo) y /location/of/backup es donde se quiere guardar la copia de seguridad (/media/disk, pongamos por caso).

Por último, el script debe hacerse ejecutable:[5]

# chmod +x /etc/cron.daily/backup 

Realizar copia de seguridad automatizada con SSH

Si realiza una copia de seguridad en un servidor remoto utilizando SSH, utilice este script en su lugar:

/etc/cron.daily/backup

#!/bin/bash rsync -a --delete --quiet -e ssh /folder/to/backup remoteuser@remotehost:/location/of/backup 
-e ssh : le dice a rsync que use SSH remoteuser : es el usuario en el servidor remotehost -a : agrupa todas estas opciones de -rlptgoD (recursivo, enlaces, permisos, tiempos, grupo, propietario, dispositivos) 

Rsync intentará modificar cualquier archivo respaldado previamente en la máquina de destino para que coincida con su estado actual en la máquina de origen, con cada copia de seguridad incremental. Esto significa que al hacer una copia de seguridad de los archivos que son propiedad de root mediante SSH (y al preservar los permisos y las propiedades como con la opción -a), se necesita acceso de root a la máquina de destino. La forma preferida de lograr esto para la automatización es configurar el demonio SSH para permitir que root inicie sesión utilizando una clave pública sin contraseña y ejecutar la orden rsync como root.

Realizar copia de seguridad automatizada con NetworkManager

Este script inicia una copia de seguridad cuando se establece la conexión de red.

Primero, cree un script que contenga las opciones de órdenes apropiadas:

/etc/NetworkManager/dispatcher.d/backup 
#!/bin/bash 
if [ x"$2" = "xup" ] ; then rsync --force --ignore-errors -a --delete --bwlimit=2000 --files-from=files.rsync /folder/to/backup / location/to/backup fi 
-a : agrupa todas estas opciones de -rlptgoD (recursivo, enlaces, permisos, tiempos, grupo, propietario, dispositivos --files-from : lee la ruta relativa de /folder/to/backup desde este archivo --bwlimit : limita el ancho de banda de E/S; KBytes por segundo 

Además, el script debe tener permiso de escritura solo para el root.

Realizar copia de seguridad automatizada con systemd e inotify

  • Debido a las limitaciones de inotify y systemd, el monitoreo recursivo del sistema de archivos no es posible. Aunque puede observar un directorio y su contenido, no monitoreará recursivamente los subdirectorios ni observará su contenido; debe especificar explícitamente cada directorio a seguir, incluso si ese directorio es hijo de un directorio que está siendo monitoreado.
  • Esta configuración se basa en una instancia de systemd.

En lugar de ejecutar copias de seguridad a intervalos de tiempo según se haya programado, como las implementadas en cron, es posible ejecutar una copia de seguridad cada vez que uno de los archivos de los que está realizando una copia de seguridad cambia. Las unidades systemd.path usan inotify para monitorear el sistema de archivos, y se pueden usar junto con los archivos systemd.service para iniciar cualquier proceso (en este caso su copia de seguridad con rsync) basado en un evento del sistema de archivos.

Primero, debe crearse el archivo systemd.path que monitoreará los archivos que está respaldando:

~/.config/systemd/user/backup.path| 
[Unit] Description=Comprueba si las rutas que se están copiando actualmente han cambiado 
[Path] PathChanged=%h/documents PathChanged=%h/music 
[Install] WantedBy=default.target 

Luego cree un archivo systemd.service que se activará cuando detecte un cambio. De manera predeterminada, se activará un archivo de servicio con el mismo nombre que la unidad de ruta (en este caso, backup.path), salvo por la extensión .service en lugar de .path (en este caso backup.service).

Si se necesita ejecutar múltiples órdenes rsync, se utiliza Type=oneshot. Esto le permite especificar múltiples parámetros ExecStart=, uno para cada orden rsync, que se ejecutará. Alternativamente, puede simplemente escribir un script para realizar todas sus copias de seguridad, al igual que con los scripts de cron.

~/.config/systemd/user/backup.service [Unit] Description=Backs up files 
[Service] ExecStart=/usr/bin/rsync %h/./documents %h/./music -CERrltm --delete ubuntu: 

Ahora se debe iniciar/activar backup.path como un servicio de systemd normal y comenzará a monitorear los cambios de los archivos e iniciará en consecuencia backup.service.

Realizar copia de seguridad diferencial por semana

Esta es una opción útil de rsync, que consiste en realizar una copia de seguridad completa (en cada ejecución) y mantener una copia de seguridad diferencial solo de los archivos modificados en un directorio separado para cada día de la semana.

Primero, se crea un script que contenga las opciones de órdenes apropiadas:

/etc/cron.daily/backup #!/bin/bash 
DAY=$(date +%A) 
if [ -e /location/to/backup/incr/$DAY ] ; then rm -fr /location/to/backup/incr/$DAY fi 
rsync -a --delete --quiet --inplace --backup --backup-dir=/location/to/backup/incr/$DAY /folder/to/backup/ /location/to/backup/full/ 
--inplace : implica la actualización --partial de los archivos de destino en el lugar 

Realizar copia de seguridad basada en instantáneas

La misma idea se puede utilizar para mantener un árbol de instantáneas de sus archivos. En otras palabras, un directorio con copias de los archivos ordenadas por fecha. Las copias se realizan mediante enlaces, lo que significa que solo los archivos que cambiaron ocuparán espacio. En términos generales, esta es la idea detrás de TimeMachine de Apple.

Este script básico es fácil de implementar y crea instantáneas incrementales rápidas utilizando la opción --link-dest para enlazar archivos sin cambios:

/usr/local/bin/snapbackup.sh 
#!/bin/bash 
# Script básico de copia de seguridad con rsync de estilo de instantáneas # Config OPT="-aPh" LINK="--link-dest=/snapshots/username/last/" SRC="/home/username/files/" SNAP="/snapshots/username/" LAST="/snapshots/username/last" date=`date "+%Y-%b-%d:_%T"` 
# Ejecutar rsync para crear una instantánea rsync $OPT $LINK $SRC ${SNAP}$date 
# Eliminar la instantánea anterior del enlace simbólico rm -f $LAST 
# Crear un nuevo enlace simbólico a la última instantánea ln -s ${SNAP}$date $LAST 

Debe existir un enlace simbólico a una copia de seguridad completa como destino para --link-dest. Si se elimina la instantánea más reciente, será necesario volver a crear el enlace simbólico para que apunte a la instantánea más reciente. Si --link-dest no encuentra un enlace simbólico que funcione, rsync procederá a copiar todos los archivos de origen en lugar de solo los cambios.

Una versión más sofisticada mantiene una copia de seguridad completa actualizada $SNAP/latest y, en caso de que un cierto número de archivos haya cambiado desde la última copia de seguridad completa, crea una instantánea $SNAP/$DATETAG de la copia de seguridad completa actual utilizando cp -al para vincular archivos sin cambios:

/usr/local/bin/rsnapshot.sh #!/bin/bash 
## mi propio procedimiento de copia de seguridad ## estilo instantánea basado en rsync ## (cc) marcio rps AT gmail.com 
# config vars 
SRC="/home/username/files/" #no olvidar la barra diagonal final SNAP="/snapshots/username" OPTS="-rltgoi --delay-updates --delete --chmod=a-w" MINCHANGES=20 
# ejecutar este proceso con prioridad baja 
ionice -c 3 -p $$ renice +12 -p $$ 
# sincronizar 
rsync $OPTS $SRC $SNAP/latest >> $SNAP/rsync.log 
# compruebar si ha cambiado lo suficiente y si es así # hacer una copia enlazada denominada por fecha 
COUNT=$( wc -l $SNAP/rsync.log|cut -d" " -f1 ) if [ $COUNT -gt $MINCHANGES ] ; then DATETAG=$(date +%Y-%m-%d) if [ ! -e $SNAP/$DATETAG ] ; then  cp -al $SNAP/latest $SNAP/$DATETAG  chmod u+w $SNAP/$DATETAG  mv $SNAP/rsync.log $SNAP/$DATETAG  chmod u-w $SNAP/$DATETAG fi fi 

Realizar copia de seguridad completa del sistema

Esta sección trata sobre el uso de rsync para transferir una copia de todo el árbol /, excluyendo algunas carpetas seleccionadas. Se considera que este enfoque es mejor que clonar un disco con dd dado que ello utilizar un tamaño diferente, una tabla de partición y un sistema de archivos, y mejor que copiar con cp -a también, porque permite un mayor control sobre los permisos de archivos, atributos, Access Control Lists y extended attributes.

rsync funcionará incluso mientras el sistema se está ejecutando, pero los archivos modificados durante la transferencia pueden o no transferirse, lo que puede causar un comportamiento inesperado de algunos programas que usan los archivos transferidos.

Este enfoque funciona bien para migrar una instalación existente a un nuevo disco duro o SSD.

La siguiente orden debe ejecutarse como root para asegurarse de que rsync pueda acceder a todos los archivos del sistema y preservar su propiedad:

# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder 

Al utilizar el conjunto de opciones -aAX, los archivos se transfieren en modo de comprimido, lo que garantiza que los enlaces simbólicos, los dispositivos, los permisos, las propiedades, los tiempos de modificación, los ACL y los atributos extendidos se conserven, suponiendo que el file system|sistema de archivos de destino dé soporte a esta función.

La opción --exclude hace que se excluyan los archivos que coinciden con los patrones dados. Se excluye el contenido de /dev, /proc, /sys, /tmp y /run en la orden anterior, porque se rellenan en el arranque, aunque las carpetas no se crean por sí mismas. /lost+found es específico del sistema de archivos. La orden anterior depende de la expansión de llaves disponible tanto en las shells bash como zsh. Cuando se utiliza un shell diferente, los patrones --exclude deben repetirse manualmente. Citar los patrones de exclusión evitará la expansión por la shell, lo cual es necesario, por ejemplo, cuando se realiza una copia de seguridad mediante SSH. Al terminar las rutas excluidas con * se garantiza que dichos directorios se creen si aún no existen.

  • Si se planea hacer una copia de seguridad de su sistema en otro lugar que no sea /mnt o /media, hay que agregarlo a la lista de patrones de exclusión para evitar un bucle infinito.
  • Si hay montajes de enlace en el sistema, también deben excluirse para que el contenido asociado al enlace se copie solo una vez.
  • Si utiliza un swap file, también debe excluirse.
  • Se debería considerar si desea hacer una copia de seguridad de la carpeta /home/. Si contiene sus datos, podría ser considerablemente más grande que el sistema. De lo contrario, considere excluir subdirectorios sin importancia como /home/*/.thumbnails/*, /home/*/.cache/mozilla/*, ic|/home/*/.cache/chromium/* y /home/*/.local/share/Trash/*, dependiendo del software instalado en el sistema. Si GVFS está instalado, /home/*/.gvfs debe excluirse para evitar errores de rsync.

Es posible que desee incluir opciones rsync adicionales, como las siguientes.

  • Si se usan muchos enlaces duros (por ejemplo, si está usando Flatpak), convendría agregar la opción -H, que está desactivada por defecto debido a su gasto de memoria. Sin embargo, no debería ser un problema en la mayoría de los ordenadores modernos. Muchos enlaces duros residen en el directorio /usr/.
  • Es posible que desee agregar la opción --delete de rsync si está ejecutando esto varias veces en la misma carpeta de respaldo. En este caso, asegúrese de que la ruta de origen no termine con /*, o esta opción solo tendrá efecto en los archivos dentro de los subdirectorios del directorio de origen, pero no tendrá ningún efecto en los archivos que residen directamente dentro del directorio de origen.
  • Si utiliza archivos dispersos, como discos virtuales, imágenes Docker y similares, debe agregar la opción -S.
  • La opción --numeric-ids desactivará la asignación de nombres de usuarios y grupos; en su lugar, se transferirán las identificaciones numéricas de grupo y de usuario. Esto es útil cuando se realiza una copia de seguridad mediante SSH o cuando se utiliza un sistema live para hacer una copia de seguridad de un disco con sistema diferente.
  • Al elegir la opción --info=progress2 en lugar de -v se mostrará la información general del progreso y la velocidad de transferencia, en lugar de la lista de archivos que se están transfiriendo.

Restaurar una copia de seguridad

Para restaurar una copia de seguridad, debe usarse la misma orden de rsync que se ejecutó, pero con el origen y el destino invertidos.

Clonar el sistema de archivos

rsync proporciona una forma de hacer una copia de todos los datos en un sistema de archivos al tiempo que conserva la mayor cantidad de información posible, incluidos los metadatos del sistema de archivos. Es un procedimiento de clonación de datos en un nivel de sistema de archivos donde los sistemas de archivos de origen y de destino no necesitan ser del mismo tipo. Se puede utilizar para realizar copias de seguridad, migrar sistemas de archivos o recuperar datos.

El modo archive de rsync está cerca de ser apto para el trabajo, pero no realiza una copia de seguridad de los metadatos especiales del sistema de archivos, como listas de control de acceso, atributos extendidos o propiedades de archivos dispersos. Para una clonación exitosa a nivel del sistema de archivos, se deben proporcionar algunas opciones adicionales:

rsync -qaHAXS DIRECTORIO_ORIGEN DIRECTORIO_DESTINO 

Y su significado es (de la página de manual):

-H, --hard-links preserva los enlaces duros -A, --acls preserva las ACL (implica -p) -X, --xattrs preserva los atributos extendidos -S, --sparse manejar archivos dispersos de manera eficiente 

Se usa -x si existen otros sistemas de archivos montados bajo el árbol que desea excluir de la copia. La copia producida se puede volver a leer y verificar (por ejemplo, después de un intento de recuperación de datos) a nivel del sistema de archivos con la opción recursiva de diff:[5]

diff -r DIRECTORIO_ORIGEN DIRECTORIO_DESTINO 

Demonio rsync

rsync se puede ejecutar como demonio en un servidor que escucha el puerto 873.

Utilización del cliente, por ejemplo listar el contenido del servidor:

$ rsync rsync://server/share 

Transferir archivo del cliente al servidor:

$ rsync local-file rsync://server/share/ 

Todos los datos transferidos, incluida la autenticación del usuario, no están cifrados.[5]

Véase también

En inglés

Referencias

  1. http://samba.org/~tridge/phd_thesis.pdf
  2. Andrew Tridgell (19 June 1996). "<cola-liw-835153950-21793-0@liw.clinet.fi>#1/1 First release of rsync - rcp replacement". comp.os.linux.announce. (Google Groups). URL accedida el 19 de julio de 2007.
  3. Davison, Wayne (1 March 2008), «Rsync 3.0.0 released», lista de correo rsync-announce, http://lists.samba.org/archive/rsync-announce/2008/000057.html. 
  4. http://rsync.samba.org/ftp/rsync/src/rsync-3.0.0-NEWS
  5. «rsync (Español)». ArchWiki. 15 de noviembre de 2019. Consultado el 29 de mayo de 2020. 

Enlaces externos

  • Sitio web oficial de rsync (en inglés)
  • Algoritmo de rsync (en inglés)
  • Versión html de página man de rsync (en inglés)
  • Using rsync on windows (en inglés)
  • Official rdiff-backup site (en inglés)
  • (en inglés)
  • QtdSync download (en inglés)

Tutoriales

  • Tutorial de rsync (en inglés)
  • Tutorial sencillo (en inglés)
  • Backups con rsync (en castellano)

Ejemplos

  • Ejemplos oficiales de rsync (en inglés)
  • Un ejemplo práctico corto el 8 de marzo de 2016 en Wayback Machine. (en inglés)
  • Unified script for easy rsync & rdiff backup (en inglés)
  • rsync – 14 ejemplos prácticos

Fuentes

  Este artículo incorpora texto de un trabajo de contenido libre. Licenciado bajo GNU Free Documentation License 1.3 o posterior Declaración de la licencia: rsync (Español), ArchWiki. Para aprender como añadir texto de licencias libres a artículos de Wikipedia, véase Wikipedia:Agregar textos en licencia libre en Wikipedia. Para más información sobre cómo reutilizar texto de Wikipedia, véanse las condiciones de uso.

  •   Datos: Q283774

rsync, aplicación, libre, para, sistemas, tipo, unix, microsoft, windows, ofrece, transmisión, eficiente, datos, incrementales, opera, también, datos, comprimidos, cifrados, mediante, técnica, delta, encoding, permite, sincronizar, archivos, directorios, entre. rsync es una aplicacion libre para sistemas de tipo Unix y Microsoft Windows que ofrece transmision eficiente de datos incrementales que opera tambien con datos comprimidos y cifrados Mediante una tecnica de delta encoding permite sincronizar archivos y directorios entre dos maquinas de una red o entre dos ubicaciones en una misma maquina minimizando el volumen de datos transferidos Una caracteristica importante de rsync no encontrada en la mayoria de programas o protocolos es que la copia toma lugar con solo una transmision en cada direccion rsync puede copiar o mostrar directorios contenidos y copia de archivos opcionalmente usando compresion y recursion rsyncInformacion generalTipo de programautilidadDesarrolladorWayne DavidsonLanzamiento inicial19 de junio de 1996LicenciaGNU General Public LicenseEstado actualEn desarrolloInformacion tecnicaProgramado enCPlataformas admitidastipo UnixVersionesUltima version estable3 2 3 info 7 de agosto de 2020 1 ano y 9 dias Ultima version en pruebas info 6 de agosto de 2020 1 ano y 10 dias Asistencia tecnicaEnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata 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 ultimo 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 Indice 1 Historia 2 Algoritmo 3 Caracteristicas y aplicaciones 4 Uso de la aplicacion Rsync 5 Variantes 6 Instalacion 6 1 Interfaces graficas 7 Como alternativa de cp mv 7 1 Lidiar con la barra diagonal 8 Como herramienta para realizar copias de seguridad 8 1 Realizar copia de seguridad automatizada 8 2 Realizar copia de seguridad automatizada con SSH 8 3 Realizar copia de seguridad automatizada con NetworkManager 8 4 Realizar copia de seguridad automatizada con systemd e inotify 8 5 Realizar copia de seguridad diferencial por semana 8 6 Realizar copia de seguridad basada en instantaneas 8 7 Realizar copia de seguridad completa del sistema 8 8 Restaurar una copia de seguridad 9 Clonar el sistema de archivos 10 Demonio rsync 11 Vease tambien 11 1 En ingles 12 Referencias 13 Enlaces externos 13 1 Tutoriales 13 2 Ejemplos 14 FuentesHistoria EditarLos autores originales son Andrew Tridgell y Paul Mackerras Tridgell uso rsync como el tema de su tesis para su grado de PhD en la Australian National University 1 rsync fue anunciado por primera vez el 19 de junio de 1996 2 Rsync 3 0 fue lanzado el 1 de marzo de 2008 3 Algoritmo EditarEl algoritmo en que se basa rsync fue creado por el programador australiano Andrew Tridgell permite transmitir eficientemente una estructura como un archivo a traves de un canal de comunicacion cuando el receptor ya tiene una version diferente de la misma estructura Su funcionamiento a grandes rasgos es el siguiente El receptor divide su copia del archivo en bloques de tamano fijo S no solapados y calcula dos sumas de verificacion checksum para cada bloque el hash MD4 y un rolling checksum mas debil Luego envia estos checksums al emisor La version 30 del protocolo lanzado con rsync version 3 0 0 ahora utiliza MD5 en lugar de MD4 4 El emisor calcula el rolling checksum para cada posible bloque de tamano S solapando bloques Esto se puede hacer eficientemente gracias a una propiedad del rolling checksum si el rolling checksum de los bytes n a n S 1 es R se puede calcular el checksum de los bytes n 1 a n S a partir del byte n el byte n S y R sin tener que examinar los bytes intermedios Entonces si ya se ha calculado el rolling checksum de los bytes 1 a 25 se puede calcular el rolling checksum de los bytes 2 a 26 de manera separada a partir del checksum anterior y de los bytes 1 y 26 El rolling checksum usado en rsync esta basado en el checksum adler 32 de Mark Adler que es utilizado en zlib y que esta basado a su vez en el checksum de Fletcher El emisor compara entonces sus rolling checksums con los enviados por el receptor para determinar si existen coincidencias Cuando las encuentra verifica calculando el checksum MD4 para el bloque propio coincidente y comparando con el del bloque del receptor Finalizado el proceso el emisor envia unicamente los bloques para los cuales no se encontro ninguna coincidencia junto con instrucciones para su ensamblado en la version del receptor En la practica esto crea un archivo identico a la copia del emisor Sin embargo es en principio posible que la copia del receptor sea distinta en este punto del emisor esto puede pasar cuando los dos archivos tienen pedazos diferentes con el mismo hash y rolling checksum Cabe destacar que las posibilidades de que esto suceda son en la practica extremadamente remotas Si las versiones del archivo del emisor y receptor tienen muchas secciones en comun la utilidad necesita transmitir pocos datos para sincronizar los archivos Caracteristicas y aplicaciones EditarMientras que el algoritmo rsync forma parte del nucleo de la aplicacion rsync y esencialmente optimiza las transferencias entre dos computadoras sobre TCP IP la aplicacion rsync provee otras funciones que asisten en la transferencia Estas incluyen compresion y descompresion de los datos bloque por bloque utilizando zlib al enviar y recibir y soporte para protocolos de cifrado tal como SSH lo que permite transmision cifrada y eficientemente diferenciada de datos comprimidos usando el algoritmo rsync Adicionalmente puede utilizarse una aplicacion de tunneling tambien para crear un tunel cifrado que asegure los datos transmitidos Ademas de archivos el algoritmo permite copiar directorios aun recursivamente asi como vinculos dispositivos grupos y permisos No requiere por defecto privilegios de root para su uso rsync fue escrito como un reemplazo de rcp y SCP Una de las primeras aplicaciones de rsync fue la creacion de un espejo mirroring o copia de respaldo de multiples clientes Unix dentro de un servidor Unix central usando rsync ssh y cuentas estandares de Unix Habitualmente se ejecuta mediante herramientas de scheduling como cron para automatizar procesos de sincronizacion entre multiples computadoras host y servidores centrales Uso de la aplicacion Rsync EditarLa invocacion mas simple de la aplicacion a traves de linea de ordenes tiene la siguiente forma rsync OPCIONES ORIGEN ORIGEN DESTINO La simplicidad de la aplicacion se puede ver en el siguiente ejemplo se utilizan opciones largas para facilitar su explicacion pero tambien se pueden utilizar opciones abreviadas rsync verbose compress rsh usr local bin ssh recursive times perms links delete exclude bak exclude www webserver www Esta orden ejecuta rsync en modo verboso muestra mensajes de estado por la salida estandar con compresion a traves de ssh en forma recursiva para los subdirectorios preservando fechas y permisos del archivo origen incluyendo vinculos borrando archivos que fueron borrados en el directorio origen excluyendo backups y archivos temporales bak el origen es el contenido del directorio www y el destino el directorio www en el host webserver Adicionalmente es necesario configurar uno de los puntos hosts como servidor rsync ejecutando rsync en modo daemon rsync daemon y configurando el archivo etc rsyncd conf Una vez configurado un servidor cualquier maquina con rsync instalado puede sincronizar archivos hacia o desde este Para sincronizar dos carpetas usando las opciones abreviadas rsync au delete En el siguiente ejemplo se sincronizan dos carpetas usando las opciones abreviadas y la informacion es enviada a un archivo cuyo nombre es la fecha y hora de la sincronizacion Los archivos existentes en la carpeta destino que no existen en la carpeta origen son borrados al finalizar la transferencia de datos rsync auv delete after carpetaorigen carpetadestino gt date d b Y H M logVariantes EditarExisten otras utilidades basadas en el algoritmo de rsync rdiff que genera archivos delta con la diferencia entre dos archivos que puede ser aplicada a uno para convertirlo en el otro en cualquier momento rdiff backup que utiliza rdiff para mantener espejos de backup de un directorio a traves de una red Rdiff backup almacena delta rdiff incrementales lo que permite recrear el directorio en cualquier punto de backup Existen ademas versiones para otros sistemas operativos como rsyncX una version para Mac OS X que permite transferir forks de recursos y que en su version rsyncXCD permite ademas crear particiones booteables Incluso es posible utilizar rsync en Microsoft Windows a traves de Cygwin Instalacion Editarrsync debe instalarse en la maquina tanto de origen como de destino 5 Interfaces graficas Editar Grsync Front end GTK gutback Wrapper de rsync escrito en Shell JotaSync Interfaz Java Swing para rsync con planificador integrado luckyBackup Front end Qt escrito en C Otras herramientas que usan rsync son rdiff backup y osyncComo alternativa de cp mv Editarrsync se puede usar como una alternativa avanzada para la orden cp o mv especialmente para copiar archivos mas grandes rsync P source destination La opcion P es la misma que Ic partial progress que mantiene los archivos parcialmente transferidos y muestra una barra de progreso de la transferencia Es posible que desee utilizar la opcion r recursive para recoger recursivamente el contenido de los directorios Los archivos se pueden copiar localmente como con cp pero el proposito motivador de rsync es copiar archivos de forma remota es decir entre dos servidores diferentes Las ubicaciones remotas se pueden especificar con una sintaxis de dos puntos entre servidores rsync source host destination o rsync host source destination Las transferencias de archivos en red utilizan el protocolo SSH de forma predeterminada y host puede ser un nombre de equipo real o un perfil alias predefinido desde ssh config Ya sea que transfiera archivos de forma local o remota rsync primero crea una lista de archivos que contiene informacion de manera predeterminada el tamano del archivo y la ultima marca de tiempo de modificacion que luego se utilizara para determinar si el archivo necesita ser construido Para cada archivo que se construira se encuentra una suma de comprobacion debil y fuerte para todos los bloques de modo que cada bloque tenga una longitud de S bytes que no se superponga y que tenga un desplazamiento que sea divisible por S Con esta informacion se puede construir un archivo grande usando rsync sin tener que transferir todo el archivo Para obtener una explicacion practica y matematica detallada remitase a how rsync works y the rsync algorithm respectivamente Para pasar a rsync valores predeterminados rapidamente se pueden usar algunos alias function cpr rsync archive hh partial info stats1 info progress2 modify window 1 function mvr rsync archive hh partial info stats1 info progress2 modify window 1 remove source files El uso del termino checksum suma de verificacion no es asimilable al comportamiento de la opcion checksum La opcion checksum afecta a la heuristica del archivo utilizada antes de transferir cualquier archivo Independientemente de la opcion ic checksum siempre se usa una suma de verificacion checksum para la construccion de archivos basada en bloques que es como rynsc transfiere un archivo 5 Lidiar con la barra diagonal Editar Arch por defecto usa cp de GNU Sin embargo rsync sigue la convencion de BSD para cp que da un tratamiento especial a los directorios de origen con una bara diagonal A pesar de que rsync r source destination crea un directorio destination source con el contenido de source y la orden rsync r source destination copia todos los archivos presentes en source directamente a destination sin subdirectorio intermedio como si lo hubiera invocado asi rsync r source destination Este comportamiento es diferente al de GNU para cp que trata source y source de forma identica pero no source Ademas algunos interpretes de ordenes anaden automaticamente la barra inclinada final cuando se completan los nombres de directorios con el tabulador Debido a estos factores puede haber cierta tendencia entre los usuarios de rsync nuevos u ocasionales a olvidarse del comportamiento diferente de rsync y sin darse cuenta provoquen un desastre o incluso sobrescribir archivos importantes al dejar la barra diagonal en la linea de ordenes Por lo tanto puede ser prudente usar un script para eliminar automaticamente las barras diagonales finales antes de invocar rsync bin zsh new args for i in do case i in i i i esac new args i done exec rsync new args Este script se puede colocar en algun lugar de la ruta y crear un alias a rsync en el archivo de inicio de shell Como herramienta para realizar copias de seguridad EditarEl protocolo rsync puede usarse facilmente para realizar copias de seguridad transfiriendo solo los archivos que han cambiado desde la ultima copia de seguridad Esta seccion describe un script para realizar copias de seguridad programada muy simple que utiliza rsync el cual generalmente se utiliza para realizar copias a medios extraibles 5 Realizar copia de seguridad automatizada Editar A modo de ejemplo el script se creara en el directorio etc cron daily y se ejecutara diariamente si un demonio cron esta instalado y configurado correctamente Primero cree un script que contenga las opciones de ordenes apropiadas etc cron daily backup bin bash rsync a delete quiet folder to backup location of backup a indica que los archivos deben archivarse lo que significa que la mayoria de sus caracteristicas se conservan no asi las ACL enlaces duros o atributos extendidos como capacidades delete significa que los archivos eliminados en origen tambien seran eliminados en la copia de seguridad Aqui folder to backup debe cambiarse por aquello que quiere respaldar home por ejemplo y location of backup es donde se quiere guardar la copia de seguridad media disk pongamos por caso Por ultimo el script debe hacerse ejecutable 5 chmod x etc cron daily backup Realizar copia de seguridad automatizada con SSH Editar Si realiza una copia de seguridad en un servidor remoto utilizando SSH utilice este script en su lugar etc cron daily backup bin bash rsync a delete quiet e ssh folder to backup remoteuser remotehost location of backup e ssh le dice a rsync que use SSH remoteuser es el usuario en el servidor remotehost a agrupa todas estas opciones de rlptgoD recursivo enlaces permisos tiempos grupo propietario dispositivos Rsync intentara modificar cualquier archivo respaldado previamente en la maquina de destino para que coincida con su estado actual en la maquina de origen con cada copia de seguridad incremental Esto significa que al hacer una copia de seguridad de los archivos que son propiedad de root mediante SSH y al preservar los permisos y las propiedades como con la opcion a se necesita acceso de root a la maquina de destino La forma preferida de lograr esto para la automatizacion es configurar el demonio SSH para permitir que root inicie sesion utilizando una clave publica sin contrasena y ejecutar la orden rsync como root Realizar copia de seguridad automatizada con NetworkManager Editar Este script inicia una copia de seguridad cuando se establece la conexion de red Primero cree un script que contenga las opciones de ordenes apropiadas etc NetworkManager dispatcher d backup bin bash if x 2 xup then rsync force ignore errors a delete bwlimit 2000 files from files rsync folder to backup location to backup fi a agrupa todas estas opciones de rlptgoD recursivo enlaces permisos tiempos grupo propietario dispositivos files from lee la ruta relativa de folder to backup desde este archivo bwlimit limita el ancho de banda de E S KBytes por segundo Ademas el script debe tener permiso de escritura solo para el root Realizar copia de seguridad automatizada con systemd e inotify Editar Debido a las limitaciones de inotify y systemd el monitoreo recursivo del sistema de archivos no es posible Aunque puede observar un directorio y su contenido no monitoreara recursivamente los subdirectorios ni observara su contenido debe especificar explicitamente cada directorio a seguir incluso si ese directorio es hijo de un directorio que esta siendo monitoreado Esta configuracion se basa en una instancia de systemd En lugar de ejecutar copias de seguridad a intervalos de tiempo segun se haya programado como las implementadas en cron es posible ejecutar una copia de seguridad cada vez que uno de los archivos de los que esta realizando una copia de seguridad cambia Las unidades systemd path usan inotify para monitorear el sistema de archivos y se pueden usar junto con los archivos systemd service para iniciar cualquier proceso en este caso su copia de seguridad con rsync basado en un evento del sistema de archivos Primero debe crearse el archivo systemd path que monitoreara los archivos que esta respaldando config systemd user backup path Unit Description Comprueba si las rutas que se estan copiando actualmente han cambiado Path PathChanged h documents PathChanged h music Install WantedBy default target Luego cree un archivo systemd service que se activara cuando detecte un cambio De manera predeterminada se activara un archivo de servicio con el mismo nombre que la unidad de ruta en este caso backup path salvo por la extension service en lugar de path en este caso backup service Si se necesita ejecutar multiples ordenes rsync se utiliza Type oneshot Esto le permite especificar multiples parametros ExecStart uno para cada orden rsync que se ejecutara Alternativamente puede simplemente escribir un script para realizar todas sus copias de seguridad al igual que con los scripts de cron config systemd user backup service Unit Description Backs up files Service ExecStart usr bin rsync h documents h music CERrltm delete ubuntu Ahora se debe iniciar activar backup path como un servicio de systemd normal y comenzara a monitorear los cambios de los archivos e iniciara en consecuencia backup service Realizar copia de seguridad diferencial por semana Editar Esta es una opcion util de rsync que consiste en realizar una copia de seguridad completa en cada ejecucion y mantener una copia de seguridad diferencial solo de los archivos modificados en un directorio separado para cada dia de la semana Primero se crea un script que contenga las opciones de ordenes apropiadas etc cron daily backup bin bash DAY date A if e location to backup incr DAY then rm fr location to backup incr DAY fi rsync a delete quiet inplace backup backup dir location to backup incr DAY folder to backup location to backup full inplace implica la actualizacion partial de los archivos de destino en el lugar Realizar copia de seguridad basada en instantaneas Editar La misma idea se puede utilizar para mantener un arbol de instantaneas de sus archivos En otras palabras un directorio con copias de los archivos ordenadas por fecha Las copias se realizan mediante enlaces lo que significa que solo los archivos que cambiaron ocuparan espacio En terminos generales esta es la idea detras de TimeMachine de Apple Este script basico es facil de implementar y crea instantaneas incrementales rapidas utilizando la opcion link dest para enlazar archivos sin cambios usr local bin snapbackup sh bin bash Script basico de copia de seguridad con rsync de estilo de instantaneas Config OPT aPh LINK link dest snapshots username last SRC home username files SNAP snapshots username LAST snapshots username last date date Y b d T Ejecutar rsync para crear una instantanea rsync OPT LINK SRC SNAP date Eliminar la instantanea anterior del enlace simbolico rm f LAST Crear un nuevo enlace simbolico a la ultima instantanea ln s SNAP date LAST Debe existir un enlace simbolico a una copia de seguridad completa como destino para link dest Si se elimina la instantanea mas reciente sera necesario volver a crear el enlace simbolico para que apunte a la instantanea mas reciente Si link dest no encuentra un enlace simbolico que funcione rsync procedera a copiar todos los archivos de origen en lugar de solo los cambios Una version mas sofisticada mantiene una copia de seguridad completa actualizada SNAP latest y en caso de que un cierto numero de archivos haya cambiado desde la ultima copia de seguridad completa crea una instantanea SNAP DATETAG de la copia de seguridad completa actual utilizando cp al para vincular archivos sin cambios usr local bin rsnapshot sh bin bash mi propio procedimiento de copia de seguridad estilo instantanea basado en rsync cc marcio rps AT gmail com config vars SRC home username files no olvidar la barra diagonal final SNAP snapshots username OPTS rltgoi delay updates delete chmod a w MINCHANGES 20 ejecutar este proceso con prioridad baja ionice c 3 p renice 12 p sincronizar rsync OPTS SRC SNAP latest gt gt SNAP rsync log compruebar si ha cambiado lo suficiente y si es asi hacer una copia enlazada denominada por fecha COUNT wc l SNAP rsync log cut d f1 if COUNT gt MINCHANGES then DATETAG date Y m d if e SNAP DATETAG then cp al SNAP latest SNAP DATETAG chmod u w SNAP DATETAG mv SNAP rsync log SNAP DATETAG chmod u w SNAP DATETAG fi fi Realizar copia de seguridad completa del sistema Editar Esta seccion trata sobre el uso de rsync para transferir una copia de todo el arbol excluyendo algunas carpetas seleccionadas Se considera que este enfoque es mejor que clonar un disco con dd dado que ello utilizar un tamano diferente una tabla de particion y un sistema de archivos y mejor que copiar con cp a tambien porque permite un mayor control sobre los permisos de archivos atributos Access Control Lists y extended attributes rsync funcionara incluso mientras el sistema se esta ejecutando pero los archivos modificados durante la transferencia pueden o no transferirse lo que puede causar un comportamiento inesperado de algunos programas que usan los archivos transferidos Este enfoque funciona bien para migrar una instalacion existente a un nuevo disco duro o SSD La siguiente orden debe ejecutarse como root para asegurarse de que rsync pueda acceder a todos los archivos del sistema y preservar su propiedad rsync aAXv exclude dev proc sys tmp run mnt media lost found path to backup folder Al utilizar el conjunto de opciones aAX los archivos se transfieren en modo de comprimido lo que garantiza que los enlaces simbolicos los dispositivos los permisos las propiedades los tiempos de modificacion los ACL y los atributos extendidos se conserven suponiendo que el file system sistema de archivos de destino de soporte a esta funcion La opcion exclude hace que se excluyan los archivos que coinciden con los patrones dados Se excluye el contenido de dev proc sys tmp y run en la orden anterior porque se rellenan en el arranque aunque las carpetas no se crean por si mismas lost found es especifico del sistema de archivos La orden anterior depende de la expansion de llaves disponible tanto en las shells bash como zsh Cuando se utiliza un shell diferente los patrones exclude deben repetirse manualmente Citar los patrones de exclusion evitara la expansion por la shell lo cual es necesario por ejemplo cuando se realiza una copia de seguridad mediante SSH Al terminar las rutas excluidas con se garantiza que dichos directorios se creen si aun no existen Si se planea hacer una copia de seguridad de su sistema en otro lugar que no sea mnt o media hay que agregarlo a la lista de patrones de exclusion para evitar un bucle infinito Si hay montajes de enlace en el sistema tambien deben excluirse para que el contenido asociado al enlace se copie solo una vez Si utiliza un swap file tambien debe excluirse Se deberia considerar si desea hacer una copia de seguridad de la carpeta home Si contiene sus datos podria ser considerablemente mas grande que el sistema De lo contrario considere excluir subdirectorios sin importancia como home thumbnails home cache mozilla ic home cache chromium y home local share Trash dependiendo del software instalado en el sistema Si GVFS esta instalado home gvfs debe excluirse para evitar errores de rsync Es posible que desee incluir opciones rsync adicionales como las siguientes Si se usan muchos enlaces duros por ejemplo si esta usando Flatpak convendria agregar la opcion H que esta desactivada por defecto debido a su gasto de memoria Sin embargo no deberia ser un problema en la mayoria de los ordenadores modernos Muchos enlaces duros residen en el directorio usr Es posible que desee agregar la opcion delete de rsync si esta ejecutando esto varias veces en la misma carpeta de respaldo En este caso asegurese de que la ruta de origen no termine con o esta opcion solo tendra efecto en los archivos dentro de los subdirectorios del directorio de origen pero no tendra ningun efecto en los archivos que residen directamente dentro del directorio de origen Si utiliza archivos dispersos como discos virtuales imagenes Docker y similares debe agregar la opcion S La opcion numeric ids desactivara la asignacion de nombres de usuarios y grupos en su lugar se transferiran las identificaciones numericas de grupo y de usuario Esto es util cuando se realiza una copia de seguridad mediante SSH o cuando se utiliza un sistema live para hacer una copia de seguridad de un disco con sistema diferente Al elegir la opcion info progress2 en lugar de v se mostrara la informacion general del progreso y la velocidad de transferencia en lugar de la lista de archivos que se estan transfiriendo Restaurar una copia de seguridad Editar Para restaurar una copia de seguridad debe usarse la misma orden de rsync que se ejecuto pero con el origen y el destino invertidos Clonar el sistema de archivos Editarrsync proporciona una forma de hacer una copia de todos los datos en un sistema de archivos al tiempo que conserva la mayor cantidad de informacion posible incluidos los metadatos del sistema de archivos Es un procedimiento de clonacion de datos en un nivel de sistema de archivos donde los sistemas de archivos de origen y de destino no necesitan ser del mismo tipo Se puede utilizar para realizar copias de seguridad migrar sistemas de archivos o recuperar datos El modo archive de rsync esta cerca de ser apto para el trabajo pero no realiza una copia de seguridad de los metadatos especiales del sistema de archivos como listas de control de acceso atributos extendidos o propiedades de archivos dispersos Para una clonacion exitosa a nivel del sistema de archivos se deben proporcionar algunas opciones adicionales rsync qaHAXS DIRECTORIO ORIGEN DIRECTORIO DESTINO Y su significado es de la pagina de manual H hard links preserva los enlaces duros A acls preserva las ACL implica p X xattrs preserva los atributos extendidos S sparse manejar archivos dispersos de manera eficiente Se usa x si existen otros sistemas de archivos montados bajo el arbol que desea excluir de la copia La copia producida se puede volver a leer y verificar por ejemplo despues de un intento de recuperacion de datos a nivel del sistema de archivos con la opcion recursiva de diff 5 diff r DIRECTORIO ORIGEN DIRECTORIO DESTINODemonio rsync Editarrsync se puede ejecutar como demonio en un servidor que escucha el puerto 873 Utilizacion del cliente por ejemplo listar el contenido del servidor rsync rsync server share Transferir archivo del cliente al servidor rsync local file rsync server share Todos los datos transferidos incluida la autenticacion del usuario no estan cifrados 5 Vease tambien EditarEn ingles Editar CVSup Unison PowerFolder Jigdo Grsync Graphical User Interface GUI para rsync cwRsyncReferencias Editar http samba org tridge phd thesis pdf Andrew Tridgell 19 June 1996 lt cola liw 835153950 21793 0 liw clinet fi gt 1 1 First release of rsync rcp replacement comp os linux announce Google Groups URL accedida el 19 de julio de 2007 Davison Wayne 1 March 2008 Rsync 3 0 0 released lista de correo rsync announce http lists samba org archive rsync announce 2008 000057 html http rsync samba org ftp rsync src rsync 3 0 0 NEWS a b c d e f rsync Espanol ArchWiki 15 de noviembre de 2019 Consultado el 29 de mayo de 2020 Enlaces externos EditarSitio web oficial de rsync en ingles Algoritmo de rsync en ingles Version html de pagina man de rsync en ingles Using rsync on windows en ingles Official rdiff backup site en ingles rsyncrypto home page en ingles QtdSync download en ingles Tutoriales Editar Tutorial de rsync en ingles Tutorial sencillo en ingles Backups con rsync en castellano Ejemplos Editar Ejemplos oficiales de rsync en ingles Un ejemplo practico corto Archivado el 8 de marzo de 2016 en Wayback Machine en ingles Unified script for easy rsync amp rdiff backup en ingles rsync 14 ejemplos practicosFuentes Editar Este articulo incorpora texto de un trabajo de contenido libre Licenciado bajo GNU Free Documentation License 1 3 o posterior Declaracion de la licencia rsync Espanol ArchWiki Para aprender como anadir texto de licencias libres a articulos de Wikipedia vease Wikipedia Agregar textos en licencia libre en Wikipedia Para mas informacion sobre como reutilizar texto de Wikipedia veanse las condiciones de uso Datos Q283774Obtenido de https es wikipedia org w index php title Rsync amp oldid 136661950, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos