PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash-Skript bringt Festplatte zum Absturz


Colin MacLaren
2021-05-21, 14:22:17
Hallo Leute,

ich habe einen Server aus der Sig zusammengebaut. Das funktioniert soweit auch super. Die Daten der Nextcloud (also primär meine Bilder) liegen auf den USB-HDDs als Raid1, die App-Daten, also Vorschaubilder ect. sind per bind Mount auf die SSD ausgelagert.

Nun möchte ich gern Google Fotos nachbauen. Das heißt, meine Freundin und ich laden jeweils die Bilder vom eigenen Handy in ihre eigenen Verzeichnisse in der Nextcloud, dann korrigiere ich per exif-Tool die "Geändert-am"-Daten, damit ich eine korrekte Reihenfolge in der Nextcloud-Galerie habe. Anschließend synchronisiere ich mit rsync die beiden Verzeichnisse aller 2h als cron-Job.

Theoretisch werden da immer nur ein paar Dateien hin- und herbewegt, meistens sogar gar keine. Dennoch kracht mir damit immer das Filesystem weg, d.h. einzelne oder alle Ordner sind leer und werden als "nicht beschreibbares Filesystem" gefunden.

Nach einem Neustart ist alles wieder. Wo liegt der Fehler?


#!/bin/sh

albumdir=/mnt/storage/nextcloud_data


#Videos EXIF-Daten
exiftool `find "$albumdir/colin/files/Photos" -mmin -120 -type f` '-datetimeoriginal<filemodifydate' -if '(not $datetimeoriginal or ($datetimeoriginal eq "0000:00:00 00:00:00"))' --overwrite_original_in_place -P
exiftool `find "$albumdir/colinseinweib/files/Photos" -mmin -120 -type f` -'-datetimeoriginal<filemodifydate' -if '(not $datetimeoriginal or ($datetimeoriginal eq "0000:00:00 00:00:00"))' --overwrite_original_in_place -P

#Alle EXIF-Daten
exiftool `find "$albumdir/colin/files/Photos" -mmin -122 -type f` "-filemodifydate<datetimeoriginal" -overwrite_original_in_place -P
exiftool `find "$albumdir/colinseinweib/files/Photos" -mmin -122 -type f` "-filemodifydate<datetimeoriginal" -overwrite_original_in_place -P

#Dateiname
exiftool `find "$albumdir/colin/files/Photos" -mmin -124 -type f` '-FileName<filemodifydate' -d "%Y-%m-%d_%H.%M.%S%%-c.%%e" "$albumdir/colin/files/Photos" -P
exiftool `find "$albumdir/colinseinweib/files/Photos" -mmin -124 -type f` '-FileName<filemodifydate' -d "%Y-%m-%d_%H.%M.%S%%-c.%%e" "$albumdir/colinseinweib/files/Photos" -P

#Syncen
find "$albumdir/colin/files/Photos" -mmin -126 -printf %P\\0|rsync -avztP --ignore-existing --files-from=- --from0 "$albumdir/colin/files/Photos" "$albumdir/colinseinweib/files/Photos"
find "$albumdir/colinseinweib/files/Photos" -mmin -126 -printf %P\\0|rsync -avztP --ignore-existing --files-from=- --from0 "$albumdir/colinseinweib/files/Photos" "$albumdir/colin/files/Photos"

#
find "$albumdir/colin/files/" -user root -exec chown www-data:www-data {} \;
find "$albumdir/colinseinweib/files/" -user root -exec chown www-data:www-data {} \;

#Neue Previews generieren
sudo -u www-data php /var/www/nextcloud/occ preview:pre-generate

exit 0

Vielen Dank für Eure Hilfe.

nalye
2021-05-21, 14:38:17
Was meinen denn die Logfiles? dmesg?
Was meint, Dir kracht das FIlesystem weg?

Colin MacLaren
2021-05-21, 15:05:23
Was meinen denn die Logfiles? dmesg?
Was meint, Dir kracht das FIlesystem weg?

Wie ich es geschrieben habe. D.h. einzelne oder alle Ordner sind leer und werden als "nicht beschreibbares Filesystem" gefunden.

Ich kann z.B. zwar noch auf mnt/storage/nextcloud_data/ zugreifen, dort ist aber alles leer.

Oder unter mnt/storage/nextcloud_data/colin/files/Photos sehe ich nur die Ordner für die Jahre 2014 und 201, die restlichen fehlen aber.

Prozesse, die dann so ein Verzeichnis lesen oder beschreiben wollen melden "No such file or directory" oder "non-writable file system."

Tyrann
2021-05-21, 15:39:24
lass die Schritte doch mal einzeln durchlaufen und schau wo es hängt

sei laut
2021-05-21, 16:53:55
Wie nalye schrieb, schau dir mal dmesg an. Es klingt so, als ob die USB Festplatte einen weg haben könnte. Zumindest kann es ein Hardware Problem sein, was dir dmesg anzeigt.
Oder halt auch die /var/log/kern.log sich anschauen.

littlejam
2021-05-21, 20:25:47
Hatte mal ähnliche Probleme mit USB 3.0.
Lösen konnte ich das kurzfristig durch abschalten von CPU-Stromsparmechanismen im Bios, S1 statt S7 und noch eine andere Option, Name vergessen.
Später hat ein Kernel Update die Situation stabilisiert, dann wieder destabilisiert und nun scheint es auch nach weiteren Kernel Updates gut zu laufen.
Plattform ist ein Intel ATOM, Celeron irgendwas.

An USB2 lief es deutlich stabiler, aber auch irgendwie nicht rund.

Grüße

Account
2021-05-23, 21:53:20
mein erster gedanke wäre, dass zuviele anweisungen gleichzeitig beim controller landen. lassen sich da irgendwie 50ms pause überall zwischenschieben oder so?

Colin MacLaren
2021-05-26, 09:11:06
mein erster gedanke wäre, dass zuviele anweisungen gleichzeitig beim controller landen. lassen sich da irgendwie 50ms pause überall zwischenschieben oder so?

Das wäre ein Ansatz. Wie geht sowas? Irgendwie mir for-Schleife?

Account
2021-05-26, 10:42:46
for i in `find "$albumdir/colin/files/Photos" -mmin -120 -type f`;
do exiftool $i '-datetimeoriginal<filemodifydate' -if '(not $datetimeoriginal or ($datetimeoriginal eq "0000:00:00 00:00:00"))' --overwrite_original_in_place -P;
done
sollte schon jede anweisung an exiftool einzeln schicken und auf fehlercode 0 warten, anstatt ihm eine liste von files hinzuwerfen. allerdings sehe ich gerade erst, was -mmin macht, d.h. die liste war wohl immer ziemlich kurz und das sollte eigentlich kein problem sein.