Datei kann unter Linux nicht gelöscht werden

Datei kann unter Linux nicht gelöscht werden

Nachdem ich mit „rsync --archive --update“ mein Home-Verzeichnis von ext4 nach btrfs gesichert habe, meldet rsync Fehler wie diesen:

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) 

Wenn ich versuche, diese Elemente mit „rm“ zu löschen, erhalte ich die Fehlermeldung, dass es sich bei diesem Element um ein Verzeichnis handelt. Aber „rm -d“ schlägt mit der Meldung „Kann nicht entfernt werden: Keine solche Datei oder kein solches Verzeichnis.“ fehl. „btrfs check“ und „btrfs scrub“ haben keine Dateisystemfehler gefunden.

Hier ist die Ausgabe für die Befehle „file“, „rm“ und „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

Wie können solche Dateisystemelemente entfernt werden?

Antwort1

Das Sichern des Home-Verzeichnisses eines Benutzers kann Probleme bereiten, wenn der Benutzer es ausführt, während Apps ausgeführt werden, da Apps Dateien offen halten und/oder Dateien und Verzeichnisse hinzufügen/entfernen und so den Sicherungsvorgang stören können.

Viel besser (falls möglich) ist es, das Backup als Root zu erstellen, während der Benutzer abgemeldet ist.

Versuchen Sie alternativ, die Anzahl der während der Sicherung ausgeführten Apps zu minimieren (beenden Sie die GUI und führen Sie den Befehl rsync von einem Befehlszeilenterminal aus).

Schließlich verwenden einige Anwendungen Sonderzeichen in ihren Datei-/Verzeichnisnamen, die verschiedene Dienstprogramme verwirren können. In diesen Fällen müssen Sie die Vorkommen im Auge behalten (am besten die Ausgabe in eine Datei umleiten) und sie manuell behandeln, indem Sie alternative Lösungen verwenden (Escapen der Zeichen, Verwendung vonTABTaste zum automatischen Vervollständigen von Datei-/Verzeichnisnamen oder sogar anderen Kopierdienstprogrammen) nach Bedarf.

Antwort2

Wenn Sie btrfs verwenden, warum nutzen Sie nicht seine Funktionen?

Mach einen Schnappschuss:

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

rsync das alte Backup in den Snapshot anstatt in die Live-Daten:

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

(Ich verwende meistens rsync -mauvPAX von/ nach/ #, aber Sie benötigen das möglicherweise nicht alles.)

Da Sie nun über BTRFS verfügen, können Sie den Snapshot anstelle der Live-Daten sichern. Dadurch sollte dieses Problem vermieden werden.

verwandte Informationen