====== Rsync ====== Rsync es un software que se utiliza para copiar y sincronizar archivos entre dos o más sistemas. Es un software muy eficiente que utiliza un algoritmo de copia diferencia, lo que significa que solo copia los datos que han cambiado desde la última sincronización. * [[https://rsync.samba.org/|Web]] * [[https://github.com/WayneD/rsync|Repositorio de código]] ===== Opciones ===== * ''-a'': mantiene todo (tiempos de modificación, acceso, enlaces, permisos, grupos) y navega por todos los subdirectorios. Sustituye a todas estas opciones juntas: ''rlptgoD''. * ''-P'': muestra el progreso de la operación. * ''-v'': muestra detalles sobre la ejecución del comando (si se usa ''-P'' no es necesario incluir esta opción). * ''-n'': ejecuta rsync, pero no realiza cambios. Modo de prueba (//dry-run//). ===== Casos de uso ===== ==== Copia de seguridad ==== Rsync se puede utilizar para crear copias de seguridad de archivos y directorios. Hacer una copia de seguridad del directorio ''/home/pepito/documentos'' en ''/backup'': rsync -a /home/pepito/documentos /backup ==== Sincronizar con un servidor remoto ==== rsync -a -e ssh /home/pepito/documentos pepito@servidor-externo:/backup/ * ''-e'': especificamos qué comando se usará en el remoto. En este caso ''[[informatica:software:ssh|ssh]]''. ==== Alternativa a cp para mostrar progreso de la copia ==== El comando ''cp'' no cuenta con un indicador de progreso de la copia del archivo. Podemos usar ''rsync'' para ello: rsync --progress archivo.txt /ruta/destino La opción ''%%--%%progress'' se puede abreviar con ''-P'' ===== Usar un puerto diferente al 22 ===== rsync -avP -e 'ssh -p 22222' /origen/ usuario@servidor:/destino La opción ''e'' permite especificar que shell remota usar, así que aprovechamos para indicar ''ssh'' y pasarle la opción para modificar el puerto a usar en la conexión. ===== Recursos ===== * [[https://es.wikipedia.org/wiki/Rsync|Rsync]] en Wikipedia.