Archiv
Bilder im JPEG-Format nach Größe und EXIF-Informationen sortieren und umbenennen
Nach der wegen meiner eigenen Doofheit fälliggewordenen Datenrettungsaktion habe ich nun eine Unmenge unsortierter Fotos im JPEG-Format auf der Platte.
Wenn schon meine Doofheit Schuld an dieser Lage ist, muss ich halt etwas mehr Gehirnschmalz investieren, um dieser einigermaßen Herr zu werden.
Eins ist von vornherein klar: Ohne eine automatische Sortierung komme ich nicht weiter.
Zum Glück hat Linux ja schon alles „an Bord”, was ich dafür brauche.
Hauptsächlich geht es mir ja um meine selbst aufgenommenen Fotos. Daher habe ich mich entschieden, die Bilder zuerst einmal nach der Angabe des Kameramodells in den EXIF-Tags in verschiedene Verzeichnisse zu sortieren und die Dateien jeweils anhand des ebenfalls per EXIF in der Datei enthaltenen Aufnahmedatums umzubenennen.
Wenn keine EXIF-Informationen in der Datei vorhanden ist, wird sie entsprechend ihrer Bildgröße in einen Ordner einsortiert.
Dies erledigt das folgende kleine Bash-Skript (quick&dirty, aber ich stelle es hier dennoch rein, für den Fall, dass es noch jemand anderem behilflich sein kann):
Mehr…
Aargh! Der Daten-Super-GAU ist eingetreten…
Und ich bin auch noch selbst Schuld…
Letzte Nacht habe ich im Halbschlaf versucht, zusätzlich Windows auf meinem Linux-Rechner zu installieren.
Resultat: Versehentlich die falsche Platte, nämlich meine Datenplatte (vorher XFS-Dateisystem), mit NTFS überformatiert…
Nachtrag (6.8.2008) — jetzt auch noch ein Hardwareausfall…
(…und ich bin nicht Schuld)
Als ob das noch nicht genug gewesen wäre…: Jetzt hat es auch noch meine Systemfestplatte gerissen. Allerdings ist es diesmal wohl ein Hardwaredefekt (zumindest ist der S.M.A.R.T.-Status schlecht). Zum Glück war da nichts Wichtiges drauf… Da Western Digital auf die Platte 5 Jahre Garantie gegeben hat, hoffe ich natürlich auf Ersatz.
Hier ist ein Ausschnitt aus dem Ergebnis von smartctl -a /dev/sda:
=== START OF INFORMATION SECTION === Model Family: Western Digital Caviar RE Serial ATA series Device Model: WDC WD5000YS-01MPB0 Serial Number: WD-WMANU1697511 Firmware Version: 07.02E07 User Capacity: 500.107.862.016 bytes [...] === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: FAILED! Drive failure expected in less than 24 hours. SAVE ALL DATA. See vendor-specific Attribute list for failed Attributes. [...] SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 195 195 051 Pre-fail Always - 9053 3 Spin_Up_Time 0x0003 226 223 021 Pre-fail Always - 5675 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 635 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 200 200 051 Pre-fail Always - 0 9 Power_On_Hours 0x0032 093 093 000 Old_age Always - 5689 10 Spin_Retry_Count 0x0013 100 100 051 Pre-fail Always - 0 11 Calibration_Retry_Count 0x0012 100 100 051 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 630 194 Temperature_Celsius 0x0022 253 253 000 Old_age Always - 50 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0012 192 192 000 Old_age Always - 678 198 Offline_Uncorrectable 0x0010 194 194 000 Old_age Offline - 518 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0009 001 001 051 Pre-fail Offline FAILING_NOW 19251 SMART Error Log Version: 1 ATA Error Count: 283 (device log contains only the most recent five errors) [...] Error 283 occurred at disk power-on lifetime: 5689 hours (237 days + 1 hours) When the command that caused the error occurred, the device was active or idle. After command completion occurred, registers were: ER ST SC SN CL CH DH -- -- -- -- -- -- -- 40 51 08 1e 62 c1 e0 Error: UNC 8 sectors at LBA = 0x00c1621e = 12673566 Commands leading to the command that caused the error were: CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name -- -- -- -- -- -- -- -- ---------------- -------------------- 25 00 08 1e 62 c1 35 00 20:11:28.146 READ DMA EXT 27 00 00 00 00 00 00 00 20:11:28.146 READ NATIVE MAX ADDRESS EXT ec 00 00 00 00 00 00 00 20:11:28.137 IDENTIFY DEVICE ef 03 46 00 00 00 00 00 20:11:28.130 SET FEATURES [Set transfer mode] 27 00 00 00 00 00 00 00 20:11:28.130 READ NATIVE MAX ADDRESS EXT [...]
Nachtrag 2 (7.8.2008) — Dateien nach Typ sortieren (trotz fehlender Dateiendung)
Um mir das Sortieren der von
#!/bin/bash
for F in *;
do MAGIC=`file "$F"`;
if [[ $MAGIC =~ "JPEG" ]]; then
echo $MAGIC;
mv "$F" /mnt/tera/restore/bilder/
fi
done;
