GNU/Linux >> Tutoriales Linux >  >> Linux

[Resuelto]:¿Por qué rsync no copió archivos/directorios ocultos y por qué Asterisk no incluye archivos ocultos (puntos) en Linux?

Usé rsync Comando para copiar un directorio de usuario particular de un dispositivo de almacenamiento a otro. La operación se completó con éxito sin arrojar ninguna advertencia/error. Pero para mi sorpresa, los datos a copiar eran de alrededor de 167 GB y los datos copiados eran de solo 1,4 GB. Utilicé el comando 'du' para calcular el tamaño del disco de las carpetas de origen y destino y me aseguré de que 'du' no muestre resultados erráticos siguiendo este tutorial:cómo corregir estadísticas de uso de disco erráticas de du. A continuación se muestra una instantánea que explica el escenario.

Escenario: Supongamos que el antiguo punto de montaje de almacenamiento es '/sata1/home/ramya' y el nuevo punto de montaje de almacenamiento es '/tmp/home/ramya'. Como dije antes, usé rsync para copiar el directorio como se muestra a continuación:

usr/bin/rsync -avzlh /sata1/home/ramya/* /tmp/home/ramya/ | tee /tmp/$(date+"%F_%R")-backup.log

Busque el 'asterisco' en el comando anterior (ese era el problema y explicaré el motivo debajo de la página)

hallazgos de discrepancias en el comando du:

du salida de comando del directorio fuente (/sata1/home/ramya/):

# du -chs /sata1/home/ramya/
167G    /sata1/home/ramya/
167G    total

du salida del comando del directorio de destino (/tmp/home/ramya):

# du -chs /tmp/home/ramya/
1.4G /tmp/home/ramya/
1.4G total

En las instantáneas anteriores, puede ver que el directorio de origen tiene un tamaño de 167 GB y el directorio copiado tiene un tamaño de 1,4 GB. Entonces, ¿dónde están los datos restantes? Déjame explicarte cómo solucioné el problema.

Solución:

Para depurar el problema, utilicé du para verificar el tamaño de cada archivo dentro de las carpetas de origen y destino como se muestra a continuación:Enumerando los archivos y comparando el tamaño del archivo.

Del resultado anterior, entendí que los archivos ocultos no se copiaron y se debió a "*" (asterisk) utilizado en el rsync dominio. El asterisco expandirá todos los archivos en el trabajo actual directorio excepto los archivos cuyo nombre comienza con un punto (archivos ocultos). Por lo tanto, rsync nunca recibe los archivos ocultos como argumentos. Entonces, la solución es usar el nombre completo del directorio (en lugar del asterisco) como argumento para rsync comando.

rsync -avzlh --ignore-existing /sata1/home/ramya/ /tmp/home/ramya/ | tee /tmp/$(date+"%F_%R")-backup.log

Nota:Las barras inclinadas finales al final de ambas rutas. ¡Cualquier otra sintaxis puede conducir a resultados inesperados!

¡Voila! Funcionó.


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. Copiar archivos y directorios en Linux

  3. ¿Cómo copiar archivos en Linux y Unix? Ejemplos de comandos de 10 cp

  4. ¿Cómo copiar archivos y subdirectorios ocultos (comenzando con un punto) en Linux?

  5. ¿Por qué rsync no puede copiar archivos de /sys en Linux?

Cómo mover archivos y directorios en Linux (comando mv)

Cómo usar el comando cp para copiar archivos y directorios

Cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux

Mantener los archivos y directorios de Linux sincronizados con rsync

Cómo copiar archivos y directorios en la terminal de Linux

4 formas de transferir archivos y directorios en Linux

    bash-3.2#du -h -x /sata1/home/ramya 
    15G /sata1/home/ramya/.g4
    48M /sata1/home/ramya/1SVC
    13G /sata1/home/ramya/.g8
    120M /sata1/home/ramya/techg/.techla
    90G /sata1/home/ramya/.openVAS.tar-gz
    16G /sata1/home/ramya/.VSL.zip
    ...
    ...
    bash-3.2#du -h -x /tmp/home/ramya 
    1G /tmp/home/ramya/samplejobtoec
    48M /tmp/home/ramya/1SVC
    41M /tmp/home/ramya/M15
    12K /tmp/home/ramya/techglimpse/openvas.txt
    134M /tmp/home/ramya/etc/pki
    264K /tmp/home/ramya/NAMD_CV
    ...
    ...