Synology - Anzahl fehlerhafter Sektoren

Hot Dog schrieb:
Hm, also in einschlägigen Foren wird berichtet, dass man auch ein Raid6 mit größeren Platten erweitern kann. Und man dabei keine Verluste in Kauf nehmen muss.
Geht schon, das hab ich in meiner Erklärung vernachlässigt bzw. übersehen. Aber nur wenn ich alle Platten auf einen Schlag durch größere ersetze. Ich kann also nicht sagen, ich habe zunächst nur das Budget für 4 Platten, oder mir reichen am Anfang 4 und ich ersetz den Rest nach und nach. Diese Flexibilität der "Zwischenlösung" entfällt.
 
NobodysFool schrieb:
Geht schon, [...] Aber nur wenn ich alle Platten auf einen Schlag durch größere ersetze.
Auch das kann ich mir nicht vorstellen. Okay ja, jetzt kann ich es mir vorstellen. 😅
Zitat aus einem anderen Forum: "Prinzipiel ist es kein Problem [bei einem Raid6] größere Platten zu einem RAID dazuzustecken."
Das klingt nicht so, als müsse man genau so viele Platten neu dazu stecken, wie bereits im System vorhanden sind.
Nevermind: Es wird später erwähnt, dass sich das Raid dem kleinsten gemeinsamen Nenner anpasst.
Und da wären wir beim Stichwort Verluste in Kauf nehmen.

Also entweder lösche ich das Volume nochmal nachdem es das Raid6 fertig gestellt hat und mach das ganze nochmal mit SHR2 oder ich lass es so und wechsle auf SHR sobald ich die 4 verbleibenden Steckplätze verwende (momentan sind ja nur 4 Steckplätze belegt).
Wie sieht es eigentlich in puncto Schreib-/Leseleistung aus? Ist da SHR2 ähnlich wie Raid6?
 
Zuletzt bearbeitet:
Wenn Du noch freie Plätze für Platten hast kannst Du beim normalen RAID6 natürlich schon noch welche dazu stecken. Aber nur gleicher Größe, bzw. kannst Du den Mehrplatz größerer Platten nicht nutzen. Nicht mal für ein zweites Volume.

Und wenn Du Vollausbau hast kannst Du den Mehrplatz größerer Platten nur erweitern und nutzen wenn Du alle Platten durch (wieder gleich) größere ersetzt.

Das mit dem kleinsten Nenner stimmt, aber Du kannst keine Platte einbauen und nutzen die kleiner ist als die kleinste der bereits vorhandenen. Sowohl beim normalen RAID als auch bei SHR nicht.
 
NobodysFool schrieb:
Wenn Du noch freie Plätze für Platten hast kannst Du beim normalen RAID6 natürlich schon noch welche dazu stecken. Aber nur gleicher Größe, bzw. kannst Du den Mehrplatz größerer Platten nicht nutzen. Nicht mal für ein zweites Volume.

Und wenn Du Vollausbau hast kannst Du den Mehrplatz größerer Platten nur erweitern und nutzen wenn Du alle Platten durch (wieder gleich) größere ersetzt.
Yap, hast komplett recht. Raid6 fällt damit bei mir raus. Möchte das NAS später auch flexibel erweitern können.
Leider kann ich die Formatierung nicht abbrechen, also muss ich das ganze wohl morgen neu einrichten. Naja, wieder was gelernt. Vielen Dank für die Erklärung (ist nicht selbstverständlich).

Wenn du noch was zur Schreib-/Leseleistung weißt, kannst es gerne noch editieren.

UPDATE:
Okay, hab den Knopf zum Löschen des Volumes gefunden. SHR2 ich komme 🙂👌
 
Zuletzt bearbeitet:
SHR ist von der Verwaltung her etwas aufwändiger als RAID. Aber ich kann mich bis jetzt nicht beschweren. Ich schaffe mit 10 GBit bei großen Dateien in der Regel das Maximum das die Schnittstell ehergibt. Ist jetzt nicht ganz Cache-bereinigt, aber in der Spitze 700-800 MB/sec, im ungünstigsten Fall gehts dann mal runter auf 400. Bei kleinen Dateien bricht es so oder so ein. Intern schafft die 1821+ zum Beispiel bei der Datenbereinigung bei mir in der Spitze 1,4 GB/sec.

Als Dateisystem lege ich Dir BTRFS nahe. Snapshots alleine sind schon was wert. Aber wenn Du evtl. noch Active Backup for Business nutzen willst um Backups von Deinem PC zu machen, dann geht das auch nur mit BTRFS. Dafür hast aber dann was die Backups betrifft auch Deduplizierung auf Blockebene, und zwar Backup-übergreifend - das wirkt sich so richtig krass aus, falls Du mehrere PCs sicherst.
 
NobodysFool schrieb:
SHR ist von der Verwaltung her etwas aufwändiger als RAID.
Jop, aber spart mir ne Menge Geld. Musste vom letzten Raid5 kommend alle Platten auf einmal ersetzen, da alle Slots belegt waren. Eigentlich wollte ich nicht so viel Geld ausgeben. Mit SHR kann ich in Zukunft dann ganz bequem eine Platte nach der anderen austauschen, je nach finanzieller Lage.
NobodysFool schrieb:
Ich schaffe mit 10 GBit bei großen Dateien in der Regel das Maximum das die Schnittstell ehergibt. Ist jetzt nicht ganz Cache-bereinigt, aber in der Spitze 700-800 MB/sec, im ungünstigsten Fall gehts dann mal runter auf 400.
Das klingt doch schonmal sehr vielversprechend. 10 Gbit Karte, sowie SSD Cache und Ram-Erweiterung stehen bei mir noch auf der To-Do-Liste. Aber erst wenn ich wieder flüssig bin. Die letzte Investition hat mir schon zu viel abverlangt 🙂
NobodysFool schrieb:
Als Dateisystem lege ich Dir BTRFS nahe.
Jap, ext4 hat zu viele Nachteile. Da fiel die Wahl relativ einfach. Und mehr Auswahl gibt es da ja nicht.
NobodysFool schrieb:
Snapshots alleine sind schon was wert. Aber wenn Du evtl. noch Active Backup for Business nutzen willst um Backups von deinem PC zu machen, dann geht das auch nur mit BTRFS.
Mit den ganzen Backup-Tools (aufgrund des "+" und DSM 7) werde ich mich in den nächsten Wochen und Monaten auseinander setzen.
Von Snapshots hört man nur gutes. Bei Backups muss ich mal schaun was da so geht. Möchte jetzt nicht gerade meinen kompletten PC backen, schließlich sind mir meine installierten Spiele alles andere als wichtig und den Speicherplatz auf dem NAS verwende ich lieber für andere Dinge. Aber mal schaun, wird bestimmt auch Backup-Funktionen für einzelne Ordner geben. Gerade hinsichtlich von Dateien für die Arbeit, damit die laufend und automatisch gesichert werden.
Auch Virtualisierung möchte ich mir noch zu Gemüte führen.
Ich liebe Synology und bin so froh, dass ich nicht auf FreeNAS gewechselt bin 🙂
 
An all die Schwarzmaler:
Habe die Migration vom alten zum neuen NAS jetzt beinahe abgeschlossen. Bisher gab es keine Fehler oder gar verlorene Dateien. Das alte NAS hat die Parity des alten Raids trotz fehlerhafter Sektoren aufrecht erhalten.
 
  • Gefällt mir
Reaktionen: Purche
Glück gehabt, freu Dich. Wir haben eben schon andere Dinge erlebt, und es ist nicht selbstverständlich, daß es so ist. Ich würde auf alle Fälle die Dateien überprüfen. Bilder kannst Du z.B. mit ImageMagick per Batchscript prüfen. Ich hab erst einen Prüflauf mit Millionen von Dateien von einer alten Datenrettung hinter mir, hat doch einige Tage gedauert.
 
PHuV schrieb:
Glück gehabt, freu Dich. Wir haben eben schon andere Dinge erlebt, und es ist nicht selbstverständlich, daß es so ist. Ich würde auf alle Fälle die Dateien überprüfen. Bilder kannst Du z.B. mit ImageMagick per Batchscript prüfen. Ich hab erst einen Prüflauf mit Millionen von Dateien von einer alten Datenrettung hinter mir, hat doch einige Tage gedauert.
Auf was genau prüfst du mit dem Tool?
Könntest du den Code für das Batch-Skript mal posten?
 
Hot Dog schrieb:
Auf was genau prüfst du mit dem Tool?
Ob die Grafikdateien valide oder kaputt sind.
Hot Dog schrieb:
Könntest du den Code für das Batch-Skript mal posten?
Linux Bash. Wenn Du kein Cygwin oder WSL verwendest, für Dich leider nicht brauchbar.
 
PHuV schrieb:
Ob die Grafikdateien valide oder kaputt sind.
Und wie genau lautet der Name des Skripts bzw. der Funktion? In dem Link den du mir geschickt hast gibt es einige Anwendungen zur Auswahl. Also unter welchem Reiter/Link muss ich schauen?
Ist es zufällig "Perceptual Hash"? <- "map visually identical images to the same or similar hash"
Ansonsten wüsste ich nicht, welche Funktion du genau im Sinn hast.
PHuV schrieb:
Linux Bash. Wenn Du kein Cygwin oder WSL verwendest, für Dich leider nicht brauchbar.
ah ok verstehe
 
Hot Dog schrieb:
Und wie genau lautet der Name des Skripts bzw. der Funktion?
Hab mir selbst eins geschrieben, immerhin mache ich das ja oft auf Arbeit. 😎
Hot Dog schrieb:
Ist es zufällig "Perceptual Hash"? <- "map visually identical images to the same or similar hash"
Ansonsten wüsste ich nicht, welche Funktion du genau im Sinn hast.

Problem: magick.exe identify dateiname findet leider nicht alle fehlerhaften Dateien richtig, wie ich es feststellen mußte.

magick.exe identify dateiname -verbose dateiname findet korrekt alle Dateien, prüft aber tiefer die Datei und schmeißt pro Datei mindestens 2 Fehlermeldungen, manchmal sogar viel mehr wie 30-50 Zeilen. Also arbeite ich hier zweistufig, suche erst mal alle Dateien und lenke alle Fehler (von stderr) um in eine Datei.

Achtung, bash bzw. Linux find. Die -iregex arbeitet mit regluar Expressions und sucht alle dort enthaltenen Dateienungen in beliebiger Groß- und Kleinschreibung, z.B. DATEI.JPG oder Datei.Gif
Code:
find . -iregex '.*\.\(jpg\|gif\|png\|jpeg\)$' -exec magick.exe identify -verbose {} 2>>kaputt.txt 1>>search.log \;

Dann landen mit 2>>kaputt.txt nur alle als fehlerhaft erkannten Meldungen in dieser Datei.
Code:
identify: Corrupt JPEG data: premature end of data segment `./Recovery/Gescheiterte Bilder/aaaa.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Unsupported marker type 0x91 `./Recovery/Gescheiterte Bilder/aaaa.jpg' @ warning/jpeg.c/JPEGErrorHandler/345.
identify: Didn't expect more than one scan `./Recovery/Gescheiterte Bilder/bbbb.jpg' @ warning/jpeg.c/JPEGErrorHandler/345.
identify: Invalid JPEG file structure: two SOI markers `./Recovery/Gescheiterte Bilder/cccc.jpg' @ warning/jpeg.c/JPEGErrorHandler
identify: Corrupt JPEG data: found marker 0x69 instead of RST0 `./Recovery/Gescheiterte Bilder/cccc.jpg' @ warning/jpeg.c/JPEGWarningHandler
Inconsistent progression sequence for component 0 coefficient 6 `./Recovery/Gescheiterte Bilder/ddddd.jpg' @ warning/jpeg.c/JPEGWarningHandler
JPEG data: 47782 extraneous bytes before marker 0xc4 `./Recovery/Gescheiterte Bilder/eeee.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Inconsistent progression sequence for component 0 coefficient 6 `./Recovery/Gescheiterte Bilder/eeee.jpg' @ warning/jpeg.c/JPEGWarningHandler


identify: Corrupt JPEG data: premature end of data segment `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST6 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST7 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST0 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST1 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST2 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST3 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST4 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST5 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST6 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST7 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST0 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST1 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST2 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST3 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST4 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST5 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST6 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST7 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST0 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST1 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST2 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST3 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST4 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST5 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST6 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST7 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST0 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST1 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST2 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST3 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST4 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST5 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST6 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST7 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST0 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST1 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST2 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST3 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST4 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST5 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST6 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST7 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST0 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST1 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST2 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST3 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST4 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST5 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST6 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST7 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST0 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST1 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST2 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST3 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST4 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST5 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST6 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST7 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST0 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST1 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST2 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST3 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
identify: Corrupt JPEG data: found marker 0xd8 instead of RST4 `./Recovery/Gescheiterte Bilder/ffff.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
Die Datei parse ich dann, so daß ich jeden Fehler nur einmal habe, und bewege die Datei in ein separates Zielverzeichnis mit gleicher Struktur (ja, nicht löschen, immer nur wegbewegen, daß man sie zur Not noch hat).
Hot Dog schrieb:
Dann kannst Du es ja ganz einfach selbst mit Windows-Mitteln nachbauen. ☺️ Wie Du sehen kannst, ist hier Linux/Unix aus meiner Sicht etwas mächtiger und einfacher als Windows Batch oder Powershell. Es läßt sich aber bestimmt mit etwas Muße gut nachbauen.

Leider habe ich auf die schnelle nichts gefunden, das sieht recht interessant aus:
https://www.npmjs.com/package/filesearch-windows

Leider bin ich nicht der Powershell Experte hier, vielleicht weiß einer der Kollegen hier noch eine Lösung.
 
Zuletzt bearbeitet:
PHuV schrieb:
Hab mir selbst eins geschrieben, immerhin mache ich das ja oft auf Arbeit. 😎
Dann kannst Du es ja ganz einfach selbst mit Windows-Mitteln nachbauen. ☺️
Als du das Tool vorgeschlagen hast, hatte ich mir eher eine einfache Lösung vorgestellt.
Da wäre es ja schneller wenn ich mir alle Bilder in allen Verzeichnissen manuell anschaue 😅
Gut dann nevermind. Thx trotzdem.
 
Hot Dog schrieb:
Als du das Tool vorgeschlagen hast, hatte ich mir eher eine einfache Lösung vorgestellt.
Sowas gedacht "einfaches" ist leider immer nicht einfach. Ich bin auch immer wieder überrascht, wie einfache Dinge bis heute so nicht gelöst sind. Ich hätte ja hier erwartet, daß z.B. Anzeigeprogramme wie IrfanView oder andere diese wenigstens als fehlerhaft erkennen. Aber sie machen es wie Windows oder der Explorer, die Bilder werden teildefekt einfach angezeigt.
Hot Dog schrieb:
Da wäre es ja schneller wenn ich mir alle Bilder in allen Verzeichnissen manuell anschaue 😅
Kommt auf Deine Bilderanzahl an. Und leider sieht man manche Fehler nicht so auf die schnelle, wenn nur die Ecke unten rechts betroffen ist. Das Tool kann interessanterweise auch RAW-Dateien von diversen Kameraherstellern prüfen.
 
Zuletzt bearbeitet:
PHuV schrieb:
Sowas gedacht "einfaches" ist leider immer nicht einfach. Ich bin auch immer wieder überrascht, wie einfache Dinge bis heute so nicht gelöst sind.
Ja leider. Wobei es letztlich doch nicht ganz so kompliziert war wie befürchtet:
echo "PROGRAMMORDNER\TESTDATEIEN\"

set /p inputfolder="PROGRAMMORDNER\TESTDATEIEN\":

for /r "%inputfolder%\" %%X in (*.jpg) do (magick identify "%%X" 1>> jpegreport.txt 2>&1)

pause
Aber auf was genau muss ich im Logfile dann achten?
Also folgendes gibt er mir aus:
"BILD-DATEI[...]JPG JPEG 4000x2250 4000x2250+0+0 8-bit sRGB 2.12131MiB 0.000u 0:00.005"

Ist das jetzt gut oder schlecht 😂
Also Auflösung, Bittiefe, Farbraum, Dateigröße ist klar, aber was soll der Rest sein, also "+0+0" und "0.000u 0:00.005"?
Mir fehlt hier etwas die Kenntnis über die Interpretation.

Und wenn ich das selbe Spielchen mit -verbose mache kommt folgendes bei raus:
Image:
Filename: D:\[DATEINAME].jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: DirectClass
Geometry: 1365x1365+0+0
Units: Undefined
Colorspace: sRGB
Type: Grayscale
Base type: Undefined
Endianness: Undefined
Depth: 8-bit
Channel depth:
Red: 8-bit
Green: 8-bit
Blue: 8-bit
Channel statistics:
Pixels: 1863225
Red:
min: 0 (0)
max: 255 (1)
mean: 111.57 (0.437528)
median: 205 (0.803922)
standard deviation: 72.7579 (0.285325)
kurtosis: -1.22977
skewness: 0.285255
entropy: 0.978175
Green:
min: 0 (0)
max: 255 (1)
mean: 111.57 (0.437528)
median: 205 (0.803922)
standard deviation: 72.7579 (0.285325)
kurtosis: -1.22977
skewness: 0.285255
entropy: 0.978175
Blue:
min: 0 (0)
max: 255 (1)
mean: 111.57 (0.437528)
median: 205 (0.803922)
standard deviation: 72.7579 (0.285325)
kurtosis: -1.22977
skewness: 0.285255
entropy: 0.978175
Image statistics:
Overall:
min: 0 (0)
max: 255 (1)
mean: 111.57 (0.437528)
median: 205 (0.803922)
standard deviation: 72.7579 (0.285325)
kurtosis: -1.22977
skewness: 0.285255
entropy: 0.978175
Colors: 256
Histogram:
2051: (0,0,0) #000000 black
2241: (1,1,1) #010101 srgb(1,1,1)
3506: (2,2,2) #020202 srgb(2,2,2)
4403: (3,3,3) #030303 grey1
5220: (4,4,4) #040404 srgb(4,4,4)
5687: (5,5,5) #050505 grey2
6189: (6,6,6) #060606 srgb(6,6,6)
6404: (7,7,7) #070707 srgb(7,7,7)
7050: (8,8,8) #080808 grey3
7597: (9,9,9) #090909 srgb(9,9,9)
8044: (10,10,10) #0A0A0A grey4
8660: (11,11,11) #0B0B0B srgb(11,11,11)
9388: (12,12,12) #0C0C0C srgb(12,12,12)
10388: (13,13,13) #0D0D0D grey5
11271: (14,14,14) #0E0E0E srgb(14,14,14)
12217: (15,15,15) #0F0F0F grey6
13216: (16,16,16) #101010 srgb(16,16,16)
13957: (17,17,17) #111111 srgb(17,17,17)
14623: (18,18,18) #121212 grey7
14803: (19,19,19) #131313 srgb(19,19,19)
14965: (20,20,20) #141414 grey8
14979: (21,21,21) #151515 srgb(21,21,21)
14952: (22,22,22) #161616 srgb(22,22,22)
14697: (23,23,23) #171717 grey9
14015: (24,24,24) #181818 srgb(24,24,24)
13619: (25,25,25) #191919 srgb(25,25,25)
13267: (26,26,26) #1A1A1A grey10
12794: (27,27,27) #1B1B1B srgb(27,27,27)
12411: (28,28,28) #1C1C1C grey11
11706: (29,29,29) #1D1D1D srgb(29,29,29)
11503: (30,30,30) #1E1E1E srgb(30,30,30)
10847: (31,31,31) #1F1F1F grey12
10707: (32,32,32) #202020 srgb(32,32,32)
10516: (33,33,33) #212121 grey13
9948: (34,34,34) #222222 srgb(34,34,34)
9744: (35,35,35) #232323 srgb(35,35,35)
9530: (36,36,36) #242424 grey14
9193: (37,37,37) #252525 srgb(37,37,37)
9184: (38,38,38) #262626 grey15
8935: (39,39,39) #272727 srgb(39,39,39)
8881: (40,40,40) #282828 srgb(40,40,40)
8831: (41,41,41) #292929 grey16
8564: (42,42,42) #2A2A2A srgb(42,42,42)
8543: (43,43,43) #2B2B2B grey17
8533: (44,44,44) #2C2C2C srgb(44,44,44)
8461: (45,45,45) #2D2D2D srgb(45,45,45)
8425: (46,46,46) #2E2E2E grey18
8258: (47,47,47) #2F2F2F srgb(47,47,47)
8269: (48,48,48) #303030 grey19
8254: (49,49,49) #313131 srgb(49,49,49)
8176: (50,50,50) #323232 srgb(50,50,50)
8258: (51,51,51) #333333 grey20
8194: (52,52,52) #343434 srgb(52,52,52)
8126: (53,53,53) #353535 srgb(53,53,53)
8345: (54,54,54) #363636 grey21
8241: (55,55,55) #373737 srgb(55,55,55)
8287: (56,56,56) #383838 grey22
8676: (57,57,57) #393939 srgb(57,57,57)
8857: (58,58,58) #3A3A3A srgb(58,58,58)
8836: (59,59,59) #3B3B3B grey23
9151: (60,60,60) #3C3C3C srgb(60,60,60)
9145: (61,61,61) #3D3D3D grey24
9257: (62,62,62) #3E3E3E srgb(62,62,62)
9291: (63,63,63) #3F3F3F srgb(63,63,63)
9506: (64,64,64) #404040 grey25
9464: (65,65,65) #414141 srgb(65,65,65)
9186: (66,66,66) #424242 grey26
9359: (67,67,67) #434343 srgb(67,67,67)
9034: (68,68,68) #444444 srgb(68,68,68)
8972: (69,69,69) #454545 grey27
8971: (70,70,70) #464646 srgb(70,70,70)
8677: (71,71,71) #474747 grey28
8524: (72,72,72) #484848 srgb(72,72,72)
8572: (73,73,73) #494949 srgb(73,73,73)
8487: (74,74,74) #4A4A4A grey29
8301: (75,75,75) #4B4B4B srgb(75,75,75)
8272: (76,76,76) #4C4C4C srgb(76,76,76)
8357: (77,77,77) #4D4D4D grey30
8164: (78,78,78) #4E4E4E srgb(78,78,78)
8250: (79,79,79) #4F4F4F grey31
7981: (80,80,80) #505050 srgb(80,80,80)
8073: (81,81,81) #515151 srgb(81,81,81)
8027: (82,82,82) #525252 grey32
7983: (83,83,83) #535353 srgb(83,83,83)
8074: (84,84,84) #545454 grey33
8084: (85,85,85) #555555 srgb(85,85,85)
7992: (86,86,86) #565656 srgb(86,86,86)
8029: (87,87,87) #575757 grey34
7843: (88,88,88) #585858 srgb(88,88,88)
7886: (89,89,89) #595959 grey35
7974: (90,90,90) #5A5A5A srgb(90,90,90)
7940: (91,91,91) #5B5B5B srgb(91,91,91)
7938: (92,92,92) #5C5C5C grey36
8157: (93,93,93) #5D5D5D srgb(93,93,93)
8152: (94,94,94) #5E5E5E grey37
8079: (95,95,95) #5F5F5F srgb(95,95,95)
8181: (96,96,96) #606060 srgb(96,96,96)
8239: (97,97,97) #616161 grey38
8215: (98,98,98) #626262 srgb(98,98,98)
8522: (99,99,99) #636363 grey39
8577: (100,100,100) #646464 srgb(100,100,100)
8713: (101,101,101) #656565 srgb(101,101,101)
9026: (102,102,102) #666666 grey40
9167: (103,103,103) #676767 srgb(103,103,103)
9457: (104,104,104) #686868 srgb(104,104,104)
9479: (105,105,105) #696969 DimGray
9302: (106,106,106) #6A6A6A srgb(106,106,106)
9667: (107,107,107) #6B6B6B grey42
9317: (108,108,108) #6C6C6C srgb(108,108,108)
9473: (109,109,109) #6D6D6D srgb(109,109,109)
9256: (110,110,110) #6E6E6E grey43
9047: (111,111,111) #6F6F6F srgb(111,111,111)
9216: (112,112,112) #707070 grey44
8862: (113,113,113) #717171 srgb(113,113,113)
8854: (114,114,114) #727272 srgb(114,114,114)
8800: (115,115,115) #737373 grey45
8749: (116,116,116) #747474 srgb(116,116,116)
8444: (117,117,117) #757575 grey46
8260: (118,118,118) #767676 srgb(118,118,118)
8196: (119,119,119) #777777 srgb(119,119,119)
7865: (120,120,120) #787878 grey47
7780: (121,121,121) #797979 srgb(121,121,121)
7662: (122,122,122) #7A7A7A grey48
7503: (123,123,123) #7B7B7B srgb(123,123,123)
7284: (124,124,124) #7C7C7C srgb(124,124,124)
7152: (125,125,125) #7D7D7D grey49
6919: (126,126,126) #7E7E7E gray
6950: (127,127,127) #7F7F7F grey50
6834: (128,128,128) #808080 fractal
6795: (129,129,129) #818181 srgb(129,129,129)
6539: (130,130,130) #828282 grey51
6417: (131,131,131) #838383 srgb(131,131,131)
6481: (132,132,132) #848484 srgb(132,132,132)
6304: (133,133,133) #858585 grey52
6294: (134,134,134) #868686 srgb(134,134,134)
6251: (135,135,135) #878787 grey53
6067: (136,136,136) #888888 srgb(136,136,136)
6068: (137,137,137) #898989 srgb(137,137,137)
5874: (138,138,138) #8A8A8A grey54
5965: (139,139,139) #8B8B8B srgb(139,139,139)
5825: (140,140,140) #8C8C8C grey55
5753: (141,141,141) #8D8D8D srgb(141,141,141)
5524: (142,142,142) #8E8E8E srgb(142,142,142)
5598: (143,143,143) #8F8F8F grey56
5430: (144,144,144) #909090 srgb(144,144,144)
5008: (145,145,145) #919191 grey57
4888: (146,146,146) #929292 srgb(146,146,146)
4812: (147,147,147) #939393 srgb(147,147,147)
4814: (148,148,148) #949494 grey58
4583: (149,149,149) #959595 srgb(149,149,149)
4569: (150,150,150) #969696 grey59
4402: (151,151,151) #979797 srgb(151,151,151)
4313: (152,152,152) #989898 srgb(152,152,152)
4342: (153,153,153) #999999 grey60
4276: (154,154,154) #9A9A9A srgb(154,154,154)
4125: (155,155,155) #9B9B9B srgb(155,155,155)
4034: (156,156,156) #9C9C9C grey61
3996: (157,157,157) #9D9D9D srgb(157,157,157)
3995: (158,158,158) #9E9E9E grey62
3882: (159,159,159) #9F9F9F srgb(159,159,159)
3907: (160,160,160) #A0A0A0 srgb(160,160,160)
3823: (161,161,161) #A1A1A1 grey63
3944: (162,162,162) #A2A2A2 srgb(162,162,162)
3953: (163,163,163) #A3A3A3 grey64
3902: (164,164,164) #A4A4A4 srgb(164,164,164)
3858: (165,165,165) #A5A5A5 srgb(165,165,165)
3724: (166,166,166) #A6A6A6 grey65
3686: (167,167,167) #A7A7A7 srgb(167,167,167)
3705: (168,168,168) #A8A8A8 grey66
3640: (169,169,169) #A9A9A9 DarkGray
3480: (170,170,170) #AAAAAA srgb(170,170,170)
3605: (171,171,171) #ABABAB grey67
3434: (172,172,172) #ACACAC srgb(172,172,172)
3450: (173,173,173) #ADADAD grey68
3419: (174,174,174) #AEAEAE srgb(174,174,174)
3322: (175,175,175) #AFAFAF srgb(175,175,175)
3383: (176,176,176) #B0B0B0 grey69
3386: (177,177,177) #B1B1B1 srgb(177,177,177)
3313: (178,178,178) #B2B2B2 srgb(178,178,178)
3316: (179,179,179) #B3B3B3 grey70
3369: (180,180,180) #B4B4B4 srgb(180,180,180)
3568: (181,181,181) #B5B5B5 grey71
3447: (182,182,182) #B6B6B6 srgb(182,182,182)
3500: (183,183,183) #B7B7B7 srgb(183,183,183)
3594: (184,184,184) #B8B8B8 grey72
3658: (185,185,185) #B9B9B9 srgb(185,185,185)
4278: (186,186,186) #BABABA grey73
5085: (187,187,187) #BBBBBB srgb(187,187,187)
5037: (188,188,188) #BCBCBC srgb(188,188,188)
4838: (189,189,189) #BDBDBD grey74
5167: (190,190,190) #BEBEBE grey
5075: (191,191,191) #BFBFBF grey75
4833: (192,192,192) #C0C0C0 silver
4797: (193,193,193) #C1C1C1 srgb(193,193,193)
4865: (194,194,194) #C2C2C2 grey76
4987: (195,195,195) #C3C3C3 srgb(195,195,195)
4880: (196,196,196) #C4C4C4 grey77
4531: (197,197,197) #C5C5C5 srgb(197,197,197)
4902: (198,198,198) #C6C6C6 srgb(198,198,198)
4995: (199,199,199) #C7C7C7 grey78
5175: (200,200,200) #C8C8C8 srgb(200,200,200)
4921: (201,201,201) #C9C9C9 grey79
5093: (202,202,202) #CACACA srgb(202,202,202)
6398: (203,203,203) #CBCBCB srgb(203,203,203)
12794: (204,204,204) #CCCCCC grey80
12955: (205,205,205) #CDCDCD srgb(205,205,205)
10603: (206,206,206) #CECECE srgb(206,206,206)
13717: (207,207,207) #CFCFCF grey81
13741: (208,208,208) #D0D0D0 srgb(208,208,208)
11958: (209,209,209) #D1D1D1 grey82
11610: (210,210,210) #D2D2D2 srgb(210,210,210)
11513: (211,211,211) #D3D3D3 LightGray
12819: (212,212,212) #D4D4D4 grey83
13600: (213,213,213) #D5D5D5 srgb(213,213,213)
14322: (214,214,214) #D6D6D6 grey84
13282: (215,215,215) #D7D7D7 srgb(215,215,215)
10785: (216,216,216) #D8D8D8 srgb(216,216,216)
9428: (217,217,217) #D9D9D9 grey85
7577: (218,218,218) #DADADA srgb(218,218,218)
6584: (219,219,219) #DBDBDB grey86
8016: (220,220,220) #DCDCDC gainsboro
6670: (221,221,221) #DDDDDD srgb(221,221,221)
6106: (222,222,222) #DEDEDE grey87
6227: (223,223,223) #DFDFDF srgb(223,223,223)
5932: (224,224,224) #E0E0E0 grey88
5715: (225,225,225) #E1E1E1 srgb(225,225,225)
5885: (226,226,226) #E2E2E2 srgb(226,226,226)
6722: (227,227,227) #E3E3E3 grey89
6812: (228,228,228) #E4E4E4 srgb(228,228,228)
6916: (229,229,229) #E5E5E5 grey90
6939: (230,230,230) #E6E6E6 srgb(230,230,230)
6033: (231,231,231) #E7E7E7 srgb(231,231,231)
6515: (232,232,232) #E8E8E8 grey91
7392: (233,233,233) #E9E9E9 srgb(233,233,233)
8467: (234,234,234) #EAEAEA srgb(234,234,234)
12858: (235,235,235) #EBEBEB grey92
12956: (236,236,236) #ECECEC srgb(236,236,236)
11235: (237,237,237) #EDEDED grey93
6212: (238,238,238) #EEEEEE srgb(238,238,238)
5950: (239,239,239) #EFEFEF srgb(239,239,239)
7486: (240,240,240) #F0F0F0 grey94
7626: (241,241,241) #F1F1F1 srgb(241,241,241)
5820: (242,242,242) #F2F2F2 grey95
974: (243,243,243) #F3F3F3 srgb(243,243,243)
169: (244,244,244) #F4F4F4 srgb(244,244,244)
40: (245,245,245) #F5F5F5 grey96
30: (246,246,246) #F6F6F6 srgb(246,246,246)
36: (247,247,247) #F7F7F7 grey97
26: (248,248,248) #F8F8F8 srgb(248,248,248)
19: (249,249,249) #F9F9F9 srgb(249,249,249)
14: (250,250,250) #FAFAFA grey98
21: (251,251,251) #FBFBFB srgb(251,251,251)
16: (252,252,252) #FCFCFC grey99
18: (253,253,253) #FDFDFD srgb(253,253,253)
13: (254,254,254) #FEFEFE srgb(254,254,254)
42: (255,255,255) #FFFFFF white
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.64,0.33)
green primary: (0.3,0.6)
blue primary: (0.15,0.06)
white point: (0.3127,0.329)
Matte color: grey74
Background color: white
Border color: srgb(223,223,223)
Transparent color: none
Interlace: JPEG
Intensity: Undefined
Compose: Over
Page geometry: 1365x1365+0+0
Dispose: Undefined
Iterations: 0
Compression: JPEG
Quality: 87
Orientation: Undefined
Profiles:
Profile-8bim: 140 bytes
Profile-icc: 3048 bytes
Profile-iptc: 128 bytes
Original Transmission Reference[2,103]: UxYqNyyuYEHxUk8IFBke
Special Instructions[2,40]: FBMD01000a930d0000cd64000028fa00004afa00009afa0000a77a0100a3b3020072c9020094c90200cbc90200143c0500
Properties:
date:create: 2018-05-28T02:27:17+00:00
date:modify: 2018-05-28T02:27:19+00:00
icc:copyright: Copyright International Color Consortium, 2009
icc:description: sRGB IEC61966-2-1 black scaled
icc:model: IEC 61966-2-1 Default RGB Colour Space - sRGB
jpeg:colorspace: 2
jpeg:sampling-factor: 2x2,1x1,1x1
signature: a1607edfc0e90715c4bf83b002362066558a1801c83d26fb2b1689a7eec425c9
Artifacts:
verbose: true
Tainted: False
Filesize: 343060B
Number pixels: 1.86322M
Pixel cache type: Memory
Pixels per second: 30.3019MP
User time: 0.047u
Elapsed time: 0:01.061
Version: ImageMagick 7.1.0-34 Q16 x64 f2934c5:20220515 https://imagemagick.org
Gibt mir zwar super viele Infos zu der Datei, aber irgendwie ist das doch auch nicht das wonach ich suche oder habe ich etwas übersehen? 😅
Vielleicht ist mir das alles auch einfach viel zu hoch und ich sollte es einfach sein lassen 😂.
PHuV schrieb:
Kommt auf Deine Bilderanzahl an. Und leider sieht man manche Fehler nicht so auf die schnelle, wenn nur die Ecke unten rechts betroffen ist. Das Tool kann interessanterweise auch RAW-Dateien von diversen Kameraherstellern prüfen.
Ja das stimmt wohl.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: PHuV
Das sieht doch schon mal gut bei Dir aus. 👍 Genau so Eigeninitiative lobe ich mir, wo man nicht alles vorbeten muß. Jetzt kommt der Trick: Du mußt sortieren, die guten ins Töpfchen, die schlechten ins Kröpfchen. Du erzeugst aktuell alles in einer Logdatei, weil Du stderr nach stdout leitest durch 2>&1.

for /r "%inputfolder%\" %%X in (*.jpg) do (magick identify "%%X" 1>> jpegreport.txt 2>&1)

Besser:

for /r "%inputfolder%\" %%X in (*.jpg) do (magick identify "%%X" 1>> jpegreport.txt 2>> fehler.jpegreport.txt)

Sprich, Du leitest nur alle Ausgaben, die einen Fehler (Fehlernummer> 0) lieferern, in eine separate Datei um. Und schon hast Du dort nur eine Logdatei mit allen fehlerhaft festgestellten Dateien. 🤗
Das Problem ist hier nur, daß das Programm blöderweise die Dateinamen so ausgibt:
`./Recovery/Gescheiterte Bilder/ffff.jpg'

` und ', fürs parsen absolut unglücklich gewählt. Deshalb ersetzte ich hier das durch ein ' (sed, tr...), so das ich dieses Zeichen als Zeichentrenner setzen kann. Damit bekomme ich als String nur Datei + Pfad bekomme, das ich nun beliebig weiter verarbeiten kann. In meinen Fall schaue ich, ob dieser String schon mal vorkam (merken in einer Variable, schauen in die neue Zeile mit dem neuen String in eine andere Variable), und überspringe dann im Script alle weiteren gleichen Dateien, bis es wieder eine neue Datei gibt. Sobald es eine neue Datei gibt, wird sie verschoben.

Code:
#!/bin/bash

# find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname ".gif" \) -exec magick.exe identify -verbose {} 2>>kaputt.txt 1>>search.log \;
# oder
# find . -iregex '.*\.\(jpg\|gif\|png\|jpeg\)$'  -exec magick.exe identify -verbose {} 2>>kaputt.txt 1>>search.log \;

# Argumente
# $1 ist die erzeugte Listendatei über find
# $2 ist das Zielverzeichnis, wo die kaputten Dateien verschoben werden sollen
LISTE=$1
ZIELVERZ=$2
shift 2

IFS="'"

# Korrigiere ` zu` '
sed -i s/\`/\'/g $LISTE

while read a datei c
do
    if [ "${datei}" == "${merker}" ];then
        continue
    fi

    verzeichnismitshlash=${datei%/*}
    verzeichnis=${verzeichnismitshlash:2}
    newzv=${ZIELVERZ}/${verzeichnis}
    mkdir -p "${newzv}"

    echo Führe aus mv "${datei}" "${newzv}"
    mv "${datei}" "${newzv}"
    rc=$?
  
 
    if [ $rc -gt 0 ];then
        echo "Fehler mit ${datei}"
    fi
    merker=${datei}
done < ${LISTE}
@Pros, Ja, man hätte die Dateierzeugung auch ins Script packen können. Ich habe aber es aus diversen Gründen separiert.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Hot Dog
PHuV schrieb:
Besser:

for /r "%inputfolder%\" %%X in (*.jpg) do (magick identify "%%X" 1>> jpegreport.txt 2>> fehler.jpegreport.txt)

Sprich, Du leitest nur alle Ausgaben, die einen Fehler (Fehlernummer> 0) lieferern, in eine separate Datei um. Und schon hast Du dort nur eine Logdatei mit allen fehlerhaft festgestellten Dateien. 🤗
Das Problem ist hier nur, daß das Programm blöderweise die Dateinamen so ausgibt:
`./Recovery/Gescheiterte Bilder/ffff.jpg'
Danke dir, das hilft schonmal weiter 👍
Problem is nur, ich hab bisher keine fehlerhaften Dateien, d.h. das Log bleibt leer (bzw. is ja eigentlich gut ^^).
Und viel mehr als zu wissen welche Datei beschädigt ist muss ich eigentlich gar nicht. Reparieren kann man die in der Regel sowieso nicht.
Also fällt die Weiterverarbeitung des Fehler-Logs bei mir eigentlich weg.

Ich lass das Skript morgen mal über eine größere Menge Bilder rennen und schau ob dabei Fehler aufkommen.
 
Hot Dog schrieb:
Problem is nur, ich hab bisher keine fehlerhaften Dateien, d.h. das Log bleibt leer (bzw. is ja eigentlich gut ^^).
Und viel mehr als zu wissen welche Datei beschädigt ist muss ich eigentlich gar nicht. Reparieren kann man die in der Regel sowieso nicht.
Also fällt die Weiterverarbeitung des Fehler-Logs bei mir eigentlich weg.
Richtig, für Dich ist nur wichtig schnell zu erkennen, ob fehlerhafte Dateien vorliegen. Daher, schau Dir nur die per stderr erzeugten Infos in der Datei an.
 
PHuV schrieb:
Richtig, für Dich ist nur wichtig schnell zu erkennen, ob fehlerhafte Dateien vorliegen. Daher, schau Dir nur die per stderr erzeugten Infos in der Datei an.
Jap 👍
Also hab jetzt eine größere Sammlung durchlaufen lassen (wenn auch noch nicht meine Bilder auf dem NAS) und siehe da, es funktioniert (mehr oder weniger) einwandfrei. Danke nochmal.
Hab im Fehlerlog jetzt folgende Nachrichten:
  • Corrupt JPEG data... <- Das Bild lässt sich aber öffnen, anschauen und zeigt keine offensichtlichen Bildfehler. Sind damit eventuell Pixelfehler gemeint oder was soll das?
  • Premature end of JPEG file... <- Bezieht sich auf die exakt selbe Bilddatei wie oben. Aber was soll das? Kann die doch ohne weiteres öffnen.
  • Not a JPEG file... <- Die Meldung is klar.
  • unable to open image... <- Ich kann das Bild ohne weiteres anschauen und auch hier keine Fehler zu erkennen. Versteh ich nich.
  • insufficient image data in file... <- Diese Bilder sind in der Tat defekt und nicht zu öffnen.

Alles in allem funktioniert das soweit ganz gut.
Kann man in einer Batch-Datei auch auf Netzlaufwerke verweisen? Möchte die Bilder auf dem NAS jetzt ungern alle auf die lokale Platte kopieren bevor ich die überprüfen kann.
 
Hot Dog schrieb:
Kann man in einer Batch-Datei auch auf Netzlaufwerke verweisen? Möchte die Bilder auf dem NAS jetzt ungern alle auf die lokale Platte kopieren bevor ich die überprüfen kann.
Ja, das macht keinen Unterschied. Einfach UNC-Pfade verwenden, wenn Du normale SMB/NFS Freigaben verwendest mit \\MEINNAS\MeineBilder\meineUnterordner. Zur Not MEINNAS mit der verwendeten IP austauschen.

Zu Deinen kaputten Bildern, ich würde sie mal in einem anderen Format abspeichern (PNG, BMP, ...) und dann wieder in JPEG zurück umwandeln, vielleicht tauchen dann die Fehler auf, oder Du hast wieder einen heile Datei. Das kannst Du aber bequem mit Batch direkt mit Tools wie IrfanView erledigen.
1652819748669.png
 
  • Gefällt mir
Reaktionen: Hot Dog
Zurück
Oben