"We are back" « oc.at

Linux-Boon-Fragenfred

Fabsko 02.02.2014 - 13:58 3660 17
Posts

Fabian1983

Here to stay
Registered: Mar 2003
Location: zwanzig
Posts: 1572
Hey!

Vielleicht wird der Thread auch von anderen genutzt, bei mir ergeben sich ja regelmäßig Fragen. :D

Dann fang ich mal an...

Ich will in einem Verzeichnis nach defekten Dateien suchen, nach ein bissl Gegoogel bin ich drauf gekommen, dass dazu wohl "find" am besten geeignet ist. Bin auf "-readable" gestoßen, aber das Gegenteil, also illegible, scheint's nicht zu geben? :D

Hätte also gern sowas:
"find /media/slave/Multimedia/Musik -readable WENN NICHT -fprint /home/fabsko/Desktop/list.txt"

Ist mir ja fast ein bisschen peinlich, das zu fragen, aber naja, was soll man machen?

Danke im Voraus!

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Der Flag -readable für find bedeutet nur dass er nur Dateien anzeigt für welche du die Berechtigungen im Filesystem hast. Das hat nix mit "kaputt sein" zu tun :).
Ob eine Musikdatei irgendwie kaputt ist, wirst wohl nur in einem Player heraus finden können. Ich lass mich aber gerne von anderen eines besseren belehren.

Fabian1983

Here to stay
Registered: Mar 2003
Location: zwanzig
Posts: 1572
Alles klar. Aber es muss doch eine Möglichkeit finden, defekte oder corrupted files auch so zu erkennen?

Ursprung des Problems: Hab mal bei "dd" den falschen Pfad eingegeben und bin über meine Daten-HDD drübergefahren. Überraschenderweise ist alles wieder aufgetaucht nach einigen Tagen an Ausgrabungen. Nur sind halt einige, relativ wenige, Files kaputt. Über Amarok erkenn ich zwar eh, welche Files das sind (weil die Tags auch nicht mehr stimmen), aber ich hätte halt gern mal was dazugelernt. :D

Valera

Here to stay
Registered: Dec 2005
Location: Mint
Posts: 683
Ohne Filesystem mit Checksummen wüßte ich nicht wie die Hardware bzw das OS das erkennen sollte? Wenn zB in einem mp3 oder jpg ein Bit umkippt hörst und siehst du vielleicht garnix oder es ist ein blopp bzw. ein entstelltes Bild. WEnn du die Hälfte wegschneidest, kann es einfach sein, dass das Musikstück dort einfach nur abbricht. Woher soll das OS wissen ob das nicht so gehört?
Imho suchst du etwas wie ZFS und dergleichen. Das bringt dir aber nichts, wenn du bereits glaubst/weißt dass es korrupte Files gibt.
Würde mich aber auch interessieren ob es da Lösungen gibt - zB für bestimmte Filetypen??

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Zumindest für mp3s konnt ich das finden: http://jo.ath.cx/soft/mp3check/
libstdc++5 unter Ubuntu 13.10 musste ich noch installieren damit die vorkompilierte Binary von v0.8.0 läuft.

Code:
#!/bin/bash

for file in $(find /media/slave/Multimedia/Musik -iname *.mp3); do
  ok=... # mp3check magic mit $file
  if ok; then
    rm $file
  fi
done
Fragt sich nur was man alles prüfen muss/kann/will :D. Mit FLACs funzt es halt schon wieder ned.

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3703
Das wäre denke ich ein Problem, das unter "künstliche Intelligenz" und ggf. "Maschinelles Lernen" fällt, sofern man beliebige Dateitypen und Dateisysteme prüfen will. Die Maschine muß ja irgendwoher wissen, wann eine Datei kaputt ist und wann nicht, und das müßte die Maschine erst Mal lernen, bevor sie so eine Entscheidung treffen kann..

Einziger Weg führt wohl über Spezialtools wie das von -=Willi=- erwähnte, wobei ich nicht gleich "rm" ausführen würd. ;)

Mußt Mal bedenken, was du brauchst, um ein defektes File auf einem intakten Dateisystem zu erkennen:
  • Textfile: Einfach zu lesen. Aber um Fehler zu erkennen, muß man auf gängige Strukturen wie "Deutsche Sätze" oder gängige Log-/Konfigurationsfilesyntaxen prüfen, und dann Abweichungen analysieren.
  • JPEG : Erst Mal muß das prüfende Tool JPEGs öffnen können, also linked gegen libjpeg o.ä. Dann die ganzen Blocks decoden und auf "seltsame" Wertematrizen prüfen?! So irgendwas.
  • MP3: libmad o.ä. können das decoden, dann müßte man auf seltsamen Noise oder plötzliche Schnitte prüfen, um positiv zu detektieren.
  • usw. usf.
Da sieht man also, daß eine Erkennung von defekten Daten nur dateitypspezifisch erfolgen kann, und mitunter evtl. ziemlich schwierig wird. Ich schätze deswegen gibt's da auch kein universelles Tool.

Hansmaulwurf

u wot m8?
Avatar
Registered: Apr 2005
Location: VBG
Posts: 5639
@GAT:
Die Stümper-Variante wäre halt mit amarok oder tool der Wahl probieren das File zu spielen. Und wenn irgendein Error kommt, annehmen das er es nicht lesen kann. (Wobei's dann halt auch sein kann, weil das File nicht da ist, weils corrupt ist, weil der Codec nicht passt,..)

davebastard

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 12415
ja das würd eventuell gehen. mit irgend einem cli tool abspielen probieren (z.B mplayer) und falls es mit error abbricht makieren oder halt in ein txt file schreiben.
aber ich glaub dass das verhalten da auch nicht immer gleich ist. bei manchen files wirds abbrechen und bei manchen vielleicht nur zu hören sein.

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3703
Man kann sich ja Mal mit einem mp3 spielen. Auf so ein File kannst mit der Schrotflinte schießen, solang du nicht grade den Anfang erwischst, wird dir ein Player das abzuspielen probieren ohne gleich zu crashen. Da müßte man alle erdenklichen Rückmeldungen des z.B. mplayer kennen, und entsprechend abfangen. Das ginge vielleicht sogar noch einigermaßen sinnvoll.. wenn auch nicht mit 100% gesicherter Detektionsrate denke ich?

Hieße aber auch, daß man den Player anweisen müßte, das File schnell durchzuackern und nicht auf einem Audiogerät wiederzugeben, sonst dauert das ja viel zu lange, wennst eine Million Files durchlaufen mußt.

Glaub trotzdem nicht so ganz daran, daß das sinnvoll funktioniert...

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12125

Fabian1983

Here to stay
Registered: Mar 2003
Location: zwanzig
Posts: 1572
Alles klar, ich hab mir das anscheinend leichter vorgestellt, als es tatsächlich ist. Beruhigt mich aber auch ein wenig, ich hab micht nämlich schon gewundert, wieso ich bei Google nicht massenweise Antworten finde.. :D

Danke Colossus für den Link, das werd ich mir mal anschauen! :)

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6287
Zitat von GrandAdmiralThrawn
Da sieht man also, daß eine Erkennung von defekten Daten nur dateitypspezifisch erfolgen kann, und mitunter evtl. ziemlich schwierig wird. Ich schätze deswegen gibt's da auch kein universelles Tool.
Außer natürlich, man hätte ein Dateisystem mit aktiviertem Checksumming. Aber selbst für ext4 ist das ja erst im Kommen...

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3703
Das bringt dir aber auch nichts, wenn Daten durch fehlerhafte Software zerlegt werden, rein vom Dateisystemzugriff her aber "alles passt"...

Sonnst könntest eh ZFS nehmen.

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6287
Klar, aber kaputte Daten durch ein ein unkontrolliertes dd, das sich nicht um das Dateisystem schert, könnten dadurch erkannt werden.

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12125
Ueber die Sinnhaftigkeit von (Meta)Data Checksumming auf Dateisystemebene gab es zuletzt einen sehr interessanten Thread auf der linux-raid ML: http://marc.info/?l=linux-raid&m=139025054501419
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz