Ich erstelle ein Skript zum Kopieren / Überprüfen von Dateien ... unter Mac OS X / FreeBSD mit der Möglichkeit, eine Portierung nach CentOS, Debian oder OpenBSD vorzunehmen
Mehr zum Drehbuch:
- Überprüfen Sie, ob der Quellpfad Dateien / Unterverzeichnisse enthält
- Erstellen Sie eine oder mehrere Prüfsummen für jedes Verzeichnis / Unterverzeichnis
- tar / komprimiere in den Zielpfad
- Überprüfen Sie die Dateiintegrität im Zielpfad
Natürlich ist es paranoid, weil die Dateiintegritätsprüfungen auf HW / HDD-Ebene durchgeführt werden und von SMART problemlos überprüft werden können, aber zehn Jahre später kann ich die Integrität des Originals nicht überprüfen. Die Prüfsumme wird auf einer CF / XD-Karte erstellt und ist original ... Sie können so viel kopieren, wie Sie möchten, und machen sich keine Gedanken über so genannte faule Bits, HW-Fehler usw.
Natürlich kann auch rsync verwendet werden, aber mir gefällt die Idee, obsolete MD5 / SHA1-Prüfsummen mit möglichen Kollisionen zu verwenden, nicht. Es braucht Stunden Arbeit, "Glück" und Schweiß, um zur richtigen Zeit am richtigen Ort zu sein und ein einzigartiges Foto zu machen ... wenn Sie das Original RAW verlieren ... ist es für immer verschwunden, nur die Erinnerung bleibt.
"Nur Paranoide überleben" - Andy Groove
Ich habe ein einfaches Arbeitsskript für Schritt 1. im Skript:
today=`date +%Y-%m-%d`
CHK='shasum -a512'
CHK_OUTPUT=($today)-checksum.txt
find . -type f ! -name ".*" -maxdepth 1 -exec $CHK {} \; > "$CHK_OUTPUT"
Ich erhalte die erwartete Prüfsummen-Datei, aber die Frage lautet: "Können wir sie verbessern?"
...cf83e1357eef47417a81a538327af927da3e ./(2017-07-19)-checksum.txt
Ich will nervig loswerden ./ also habe ich folgendes codiert ...
find ./ -type f ! -name ".*" -maxdepth 1 -exec bash -c '$CHK $(basename {}) > $CHK_OUTPUT' \;
leider bekomme ich folgenden fehler
bash: ${CHK_OUTPUT}: ambiguous redirect
ein weiterer Versuch
find ./ -type f ! -name ".*" -maxdepth 1 -exec bash -c '$CHK $(basename {})' \; > $CHK_OUTPUT
es funktioniert irgendwie aber mit seltsamen ergebnissen
Ich habe mit UTFM & RTFM versagt und ich habe keine Ahnung, wie ich überhaupt Google fragen soll :-D
Kann jemand vorschlagen, wie es geht, bitte?
Grüße
David
bash
standardmäßig installiert sind.