RSYNC Commad en Linux con 12 ejemplos prácticos

RSYNC Commad en Linux con 12 ejemplos prácticos

RSYNC (Remote Sync) es una herramienta de línea de comandos para sincronizar archivos entre dos sistemas basados ​​en UNIX. RSYNC también se puede usar en el mismo sistema para sincronizar archivos entre dos directorios. RSYNC utiliza un algoritmo Delta-Transfer para enviar solo las diferencias entre los archivos de origen y los archivos existentes al destino. RSYNC utiliza menos datos en la red para conservar el ancho de banda.

RSYNC se emplea típicamente para hacer una copia de seguridad de grandes cantidades de datos o transferir datos entre dos computadoras. RSYNC admite la sincronización de archivos de local a local, local a remoto y remoto. Sin embargo, la sincronización de archivos remoto a remoto no es compatible.

En esta publicación, veremos algunos usos comunes para la herramienta de línea de comandos RSYNC.

Sintaxis

RSYNC [Opción ...] Fuente ... [Destino] 
  • Aquí FUENTE puede ser un directorio local como "/opt/backup" o una ubicación remota como "[correo electrónico protegido]:/opt/remotedir/"
  • También el DESTINO puede referirse como un directorio local o directorio de sistemas remotos
  • Tanto el origen como el destino pueden referirse a un directorio local.
  • Solo una fuente o destino puede ser el control remoto. No puedes usar ambos como ubicaciones remotas.

Opciones de comando RSYNC

RSYNC ofrece una gran cantidad de opciones útiles que controlan todos y cada uno de los aspectos de su comportamiento y lo hacen más flexible para sincronizar archivos. A continuación se muestra la lista de algunas opciones de comando RSYNC utilizadas con frecuencia:

  • -v, -vv -vvv, -verbose - Esta opción se usa para registros detallados en la salida estándar. El RSYNC predeterminado se ejecuta en silencio. Cuanto mayor sea el número de "V" aumenta el nivel de registro.
  • -A, -Archivo - Es la opción utilizada más común con el comando rsync. El modo de archivo es equivalente a las opciones -rlptgod . Básicamente, incluye todas las opciones necesarias como, recursivamente, preservar permisos de archivos, enlaces simbólicos, propiedad de archivos y marcas de tiempo.
  • -Z, -Compress - Use esta opción para transferir datos en formato comprimido. Que es útil para guardar el ancho de banda.
  • -h,--humano legible - Use esta opción para imprimir todas las salidas en un formato legible por humanos.
  • --borrar - Use esta opción solo si necesita eliminar archivos en el destino, que no existe en la fuente.
  • --excluir = patrón - Excluir archivos de RSYNC que coincida con el patrón dado.
    rsync --exclude '*.JPG 'SRC/ Dest/ 
  • --incluir = patrón - Incluya archivos en RSYNC que coincida con el patrón dado.
    rsync -include '*.jpg ' -include'*.txt '--exclude'*'src/ dest/ 

Ejemplos de RSYNC

Aquí hay 12 ejemplos prácticos del comando rsync en sistemas unix/linux.

  1. Copiar/sincronizar archivos y directorios locales a locales
  2. RSYNC permite sincronizar archivos entre directorios en el sistema local. Por ejemplo, tengo algunos archivos de copia de seguridad en mi máquina local debajo del /mnt/copia de seguridad directorio. Quiero copiar/sincronizar todos los archivos a la unidad USB que está montada en /mnt/disk1. Use el siguiente comando para sincronizar todos los archivos y directorios de /OPT/Backup a /mnt /disk1.

    rsync -avhz/opt/backup/mnt/disk1/  Enviar la lista de archivos incremental Copia de seguridad/ copia de seguridad/ tecadmin.22MAR2022.copia de seguridad de SQL/tecadmin.22MAR2022.alquitrán.Gz Backup/Tecadmin.23MAR2022.copia de seguridad de SQL/tecadmin.23MAR2022.alquitrán.GZ envió 1.09g bytes recibió 96 bytes 23.El tamaño total de 39m bytes/seg es 1.47G Speedup es 1.35 
    Copiar/sincronizar archivos y directorios entre dos directorios locales

  3. Copiar/sincronizar archivos y directorios locales a remoto
  4. Usando RSYNC, podemos copiar/sincronizar rápidamente los archivos de los sistemas locales a remotos. Por ejemplo, necesito transferir un sitio web a un nuevo servidor. Este contenido del sitio web requerido es una copia de los sistemas remotos. Use el siguiente comando a continuación para copiar todos los archivos del local /var/www/html Directorio al control remoto (192.168.1.100) Sistemas/directorio var/www/html.

    rsync -avhz/var/www/html [correo electrónico protegido]:/var/www/html/  

    El comando anterior es útil para un administrador del sistema, que copia archivos entre dos sistemas de forma regular.

  5. Copiar/sincronizar archivos y directorios remoto a local
  6. El comando RSYNC también permite la fuente como un directorio remoto, pero luego el destino debe ser local. Use el directorio de origen del host remoto y el destino debe ser el directorio local. Por ejemplo, necesito copiar todos los archivos de copia de seguridad almacenados en /copias de seguridad directorio en remoto al directorio local /opt /backups.

    rsync -avhz [correo electrónico protegido]:/copias de seguridad/opt/backups  

  7. Usando rsync sobre ssh
  8. El RSYNC se conecta a sistemas remotos utilizando el demonio rsync directamente a través de TCP. Podemos instruir a RSYNC que use Secure Shell (SSH) para conectar sistemas remotos en lugar de crear una conexión TCP.

    Usar -mi opción para especificar el shell remoto. El siguiente comando usará SSH como un shell remoto:

    rsync -avhz -e ssh/src [correo electrónico protegido]:/dest/  

    Si el servidor SSH en el destino se ejecuta en un puerto no estándar, use este tutorial para conectar RSYNC sobre un puerto no estándar.

  9. Ignorar archivos y directorios ya existe en el destino
  10. Use el comando rsync con --ignorar opción para ignorar todos los archivos, que ya existen en el destino. Por ejemplo, desea programar un script de copia de seguridad para copiar todos los archivos en el disco de copia de seguridad diariamente. En ese caso, no desea copiar todos los archivos una y otra vez. Esta opción copiará esos archivos, que no están disponibles en el destino.

    RSYNC -AVHZ --Inignore -Existing /Opt /Backups /Mnt /Disk1  

  11. Actualizar el archivo solo si la fuente es más nueva
  12. Usar --actualizar opción para actualizar el archivo en remoto solo si hay una versión más nueva es local. El RSYNC creará un archivo en el destino si no existe. Además, el archivo de actualización en el destino de una marca de tiempo local es más nuevo que el archivo del sistema remoto.

    rsync -update -avhz/opt/backups/mnt/disk1/  

  13. Eliminar el archivo de la fuente después de la sincronización
  14. Usar --eliminar los archivos de fuente opción para eliminar un archivo de la fuente después de una transferencia exitosa al destino. Por ejemplo, debe programar una copia de seguridad de los archivos de registro en el sistema remoto. Además, quería registrar remotamente el archivo desde el sistema local después de copiar correctamente al control remoto. Esto ayudará a reclamar espacio en disco.

    RSYNC--Remove-Source-Files -avhz/var/log [correo electrónico protegido]:/backup/logs/  

  15. Excluir archivo o directorio específico con RSYNC
  16. Puede especificar un archivo o patrón con --excluir = patrón opción para excluir de rsync.

    rsync -avh --exclude '*.ZIP '--exclude'*.registro ' /src [correo electrónico protegido]: /dest  

  17. Incluir archivos específicos con rsync
  18. El RSYNC predeterminado incluye todos los archivos en el árbol de directorio de origen. Ahora, debe incluir solo archivos específicos para sincronizar al destino.

    Aquí puedes especificar --incluir = patrón incluir archivos específicos y excluir todos los archivos con * .

    rsync -avhz -include '*.jpg ' -include'*.txt '--exclude'*' /src [correo electrónico protegido]: /dest  

  19. Mostrar progreso con RSYNC
  20. Usar --progreso Opción para mostrar el progreso durante la transferencia de archivo entre fuente y destino con el comando rsync.

    rsync -avh --progress /src [correo electrónico protegido]: /dest  

  21. Permisos de archivo de chnage con RSYNC
  22. Puede instruir al RSYNC que cambie el propietario de los archivos y los propietarios de grupos en el destino. Usar opción --chown = usuario: grupo con rsync para cambiar el permiso del archivo.

    RSYNC -AVH --Chown = User: Group /SRC [correo electrónico protegido]: /Dest  

    Del mismo modo, puedes usar el -chmod = chmod opción para cambiar los permisos de archivo o directorio en el destino.

    rsync -avh --chmod = 755 /src [correo electrónico protegido]: /dest  

  23. RSYNC Dry Run solo
  24. Usar --corrido por secado Opción para ejecutar la ejecución seca solamente. Le mostrará resultados similares como el comando original, pero nada se actualizará en el destino. Básicamente, podemos usar esto para verificar qué actualizará el RSYNC antes de ejecutarlo realmente.

    RSYNC -AVH -Dry -Run /Src [correo electrónico protegido]: /Dest  

Conclusión

RSYNC es una gran utilidad para transferir grandes cantidades de datos entre dos máquinas. También puede usar RSYNC para hacer una copia de seguridad de todo el sistema en una ubicación de copia de seguridad remota en este artículo. Has aprendido algunos ejemplos prácticos de comando RSYNC en este artículo que son excelentes para las tareas diarias.