No se puede eliminar el archivo en Linux

No se puede eliminar el archivo en Linux

Después de hacer una copia de seguridad con 'rsync --archive --update' de mi directorio personal 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', aparece un mensaje de error que indica que este elemento es un directorio. Pero 'rm -d' falla con el 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á el resultado de los comandos 'file', '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?

Respuesta1

Hacer una copia de seguridad del directorio principal de un usuario puede tener problemas si el usuario la ejecuta mientras tiene aplicaciones en ejecución, ya que las aplicaciones pueden mantener archivos abiertos 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 cierra la sesión.

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 una terminal de línea de comandos).

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

Respuesta2

Si está utilizando btrfs, ¿por qué no aprovechar sus funciones?

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}')/

(Yo uso principalmente rsync -mauvPAX from/ to/ # pero es posible que no necesites 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.

información relacionada