No se puede eliminar el archivo en Linux

1

Después de hacer una copia de seguridad con 'rsync --archive --update' mi directorio de inicio de ext4 a btrfs, rsync informa errores como este:

rsync: readdir("/mnt/backup/home/me/.mozilla/firefox/qbdcaxwe.default/sessions/????????? ??????"): Not a directory (20)                
rsync: rename "/mnt/backup/home/me/.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN" ->                           
+"home/me/.mutt/cache/bodies/imaps:[email protected]/INBOX/3-13228": Not a directory (20) 

Cuando intento eliminar estos elementos con 'rm', hay un mensaje de error que dice que este elemento es un directorio. Pero 'rm -d' falla con un mensaje "no se puede eliminar ...: No existe tal archivo o directorio". 'btrfs check' y 'btrfs scrub' no han encontrado ningún error en el sistema de archivos.

Aquí está la salida para los comandos 'archivo', 'rm' y 'rmdir':

$ file /.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN
/.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN: SMTP mail, Non-ISO extended-ASCII text, with very long lines
$ rm /.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN
rm: remove regular file ‘/.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN’? y
rm: cannot remove ‘/.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN’: Not a directory
$ rmdir /.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN
rmdir: failed to remove ‘/.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN’: Not a directory

¿Cómo se pueden eliminar dichos elementos del sistema de archivos?

Al Berger
fuente

Respuestas:

1

Hacer una copia de seguridad del homedir de un usuario puede tener problemas si el usuario lo ejecuta mientras se ejecutan aplicaciones, ya que las aplicaciones pueden mantener abiertos los archivos y / o agregar / eliminar archivos y directorios e interferir con el proceso de copia de seguridad.

Mucho mejor (si es posible) es crear la copia de seguridad como root mientras el usuario está desconectado.

Alternativamente, intente minimizar la cantidad de aplicaciones que está ejecutando mientras realiza la copia de seguridad (salga de la GUI y ejecute el cmd rsync desde un terminal de línea de comandos).

Finalmente, algunas aplicaciones usan caracteres especiales en sus nombres de archivo / directorio que pueden confundir varias utilidades. Para estos debe realizar un seguimiento de las ocurrencias (lo mejor es redirigir la salida a un archivo) y manejarlas manualmente, utilizando soluciones alternativas (escape de caracteres, uso de la tecla TAB para autocompletar nombres de archivo / directorio o incluso otras utilidades de copia) según sea necesario.

Dan Cornilescu
fuente
0

Si está utilizando btrfs, ¿por qué no aprovechar sus características?

toma una foto:

sudo btrfs sub snap /home/me /home/me/.$(date +%Y-%m-%d_%H%M%S)_snapshot

rsync la copia de seguridad anterior en la instantánea en lugar de los datos en vivo:

rsync --archive --update /mnt/backup/home/me/ /home/me/$(sudo btrfs subvolume list -c /home/me|tail -n1|awk '{print $NF}')/

(Utilizo principalmente rsync -mauvPAX de / a / # pero es posible que no necesite todo eso).

Ahora que tiene btrfs, puede hacer una copia de seguridad de la instantánea en lugar de los datos en vivo, y eso debería ayudar a evitar este problema.

Alexx Roche
fuente