Dateien Löschen bei korruptem USB-Stick

Bash, Shell, PHP, Python, Perl, CGI
Post Reply
nathan
Posts: 23
Joined: 2002-09-11 16:37
 

Dateien Löschen bei korruptem USB-Stick

Post by nathan »

Hallo,
ich hab ein Scipt, welches Dateien und Unterverzeichnisse auf auf Windows Rechner angeschlossene USB-Sticks kopiert.
Dazu wird der USB Stick per Windows Freigabe von dem Linux Rechner (SuSE 10) per cifs gemounted.
Vor dem Kopieren wird das Zeilverzeichnis in .old umbenannt. Das alte .old Verzeichnis soll vorher gelöscht werden.
Dies mach ich bisher mit rm -rf $OLDDIR.

Nun kommt es vor, dass ein USB Stick defekt ist und es dabei Dateien mit merkwürdigen Namen gibt.
Der rm Job gibt dann folgendes aus:

Code: Select all

rm: cannot remove directory `/mnt/slot/DE/deu/1\002tg\032302252303226&.303246\023303250': No such file or directory
rm: cannot remove directory `/mnt/slot/DE/deu/303266302252^302252a302273s303244.' j': No such file or directory
rm: cannot remove `/mnt/slot/DE/deu/302273F3422252409,=2302263.7\030342225243': No such device or address
rm: cannot remove `/mnt/slot/DE/deu/v\027303237303215\005303241303264\006.ug303240': No such device or address
rm: FATAL: cannot ensure `/mnt/slot/DE' (returned to via ..) is safe: No such device or address
Unter Windows sieht dies so aus: http://opdat.de/Unbenannt.JPG

Teilweise ist der Linux Server zu dieser Zeit abgestürzt. Ein Hardwaredefekt (der ggf. auch hierfür verantwortlich ist) ist allerdings noch nicht überprüft.

Meine Frage:
Die Shell scheint teilweise die merkwürdigen Zeichen als Befehl und Pipes zu verstehen, was ungeahnte Effekte haben kann.
Wie könnten solche Dateien/Verzeichnisse erkannt und rausgefilter werden?

Vielen Dank und Gruß,
Nathan
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Dateien Löschen bei korruptem USB-Stick

Post by Joe User »

Ungeprüft:

Code: Select all

find /path/to/mountpoint -type d -name *.old -print0 | xargs -0 rm -rf
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
nathan
Posts: 23
Joined: 2002-09-11 16:37
 

Re: Dateien Löschen bei korruptem USB-Stick

Post by nathan »

Danke.
klappt aber nicht

Code: Select all

find: "deu/┌òV├+f¤┼.Á\035¥": Datei oder Verzeichnis nicht gefunden
find: "deu/¯ò\025§l\037\023\036.à\030=": Datei oder Verzeichnis nicht gefunden
find: "deu/ä▒‗[½h╗ï.×½l": Datei oder Verzeichnis nicht gefunden
find: "deu/hBõ\\030J9Ù.¢¼@": Das Argument ist ungültig
find: "deu/{[j┌ú‗‗©.ÒaÕ": Datei oder Verzeichnis nicht gefunden
find: "deu/þ╠╚bÆ\035êÑ.▓Êc": Datei oder Verzeichnis nicht gefunden
Solche schönen Dateien liegen da:

Code: Select all

-rwxrwSrwx 1 user users 2898570528  7. Mai 2018  v?ßÍ?áô?.ugà
drwxrwxrwx 1 user users 3784157975 28. Mai 60056  VzÄz%│┘(.#¾¨
-r-xr-Sr-x 1 user users  337748112 28. Mai 60056   ý(╝dc³}.c]%
drwxrwxrwx 1 user users  850767864  6. Feb 2097  þ╠╚?Æ?êÑ.▓Êc
Aber vermutlich lassen die sich eh nicht löschen - da halt korrupt.

Vielleicht eine Idee, wie man das korrupte Dateisystem vor dem Löschen erkennen kann um so den Löschprozeß zu veerhindern?

Danke und Gruß,
Nathan
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Dateien Löschen bei korruptem USB-Stick

Post by Joe User »

Die sind nicht korrupt, die Filenames sind nur in einem anderen (nicht unterstützten) Zeichensatz kodiert (vermutlich Unicode).
Dein Kernel, Coreutils, Linux-Utils und Filesystem-Utils verstehen alle Unicode? Andernfalls jeweils Unicode aktivieren und rekompilieren...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Post Reply