linux – rsync y enlaces simbólicos

Pregunta:

Quiero hacer una copia de seguridad de mi directorio de inicio en una unidad externa todas las noches usando un trabajo cron para ejecutar rsync . No estoy seguro del comportamiento exacto de los indicadores de enlaces simbólicos de rsync .

  1. El indicador -a rsync incluye el indicador -l (es decir, "copiar enlaces simbólicos como enlaces simbólicos"). ¿Significa esto solo que copiará el enlace o que seguirá el enlace y copiará todo en el directorio de enlace? Quiero evitar eso porque tengo enlaces a directorios llenos de archivos multimedia que implicarían copiar cientos de gigabytes que no necesito respaldar.
  2. Temiendo (pero no seguro) que rsync -a copiara todos esos archivos multimedia, agregué la --no-links . Este no parece ser el comportamiento que deseo. Simplemente ignora la copia de cualquier enlace que sea problemático porque tengo enlaces que quiero copiar (por ejemplo, enlaces a archivos de encabezado comunes de diferentes directorios de proyectos).
  3. Suponiendo que el n. ° 1 anterior (sin la --no-links ) es lo que realmente quiero y solo copia el enlace sin copiar los archivos vinculados, ¿se romperán los enlaces cuando se haga una copia de seguridad? Por ejemplo, puedo rsync directorio de origen /home/me/projects/misc en /media/extdrive/backup/home/me/projects/misc . En este caso, asumo que rsync no es lo suficientemente inteligente ni intenta corregir el contenido de los enlaces simbólicos para los cambios de directorio relativos. ¿Es esto correcto? Esto está bien, no importa si los enlaces están rotos en los directorios de respaldo, siempre y cuando estén arreglados y funcionando si llega el momento en que necesitan ser restaurados.

Respuesta:

  1. "Copiar enlaces simbólicos como enlaces simbólicos" significa exactamente lo que dice: si rsync ve un enlace simbólico en el directorio de origen, creará un enlace simbólico idéntico en el destino. Nada mas.

    (Unas pocas líneas más abajo en la página del manual, una opción diferente , --copy-links , describe el comportamiento opuesto (siempre copiando los datos) que usted describió como indeseable).

    Consulte también la sección "Enlaces simbólicos":

    Si se especifica --links , los enlaces simbólicos se vuelven a crear con el mismo objetivo en el destino.

  2. No es el comportamiento que desea porque está malinterpretando lo que hace --links y, por lo tanto, está preguntando por el comportamiento incorrecto (consulte la respuesta n. ° 1).

  3. De forma predeterminada, copia el destino exactamente.

    Es decir, si el enlace apunta a una ruta absoluta (por ejemplo, /home/me/projects ), seguirá apuntando a la misma ruta; no se romperá , simplemente seguirá apuntando a un archivo en su directorio de inicio en lugar del que está en su copia de seguridad.

    Mientras tanto, si el enlace apuntaba a una ruta relativa (por ejemplo, ../../projects ), también seguirá apuntando a la misma ruta, pero dado que es relativo a la ubicación del enlace simbólico, el enlace simbólico en su copia de seguridad también apuntará a un archivo en su copia de seguridad.

    Desafortunadamente, no parece haber ninguna opción para traducir enlaces simbólicos absolutos para su nueva base (solo una opción para romperlos por completo). Para evitar problemas, debe cambiar los enlaces simbólicos existentes por otros relativos (lo cual es una buena idea en general, para los enlaces dentro de $ HOME).

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım