Hallo zusammen,
ich möchte gerne ein Shellscript schreiben was alle 3 Stunden einmal ausgeführt wird. Es soll folgendes machen
Quellverzeichnis rekursiv durchlaufen und Ordnersturuktur im Zielverzeichnis anlegen
2. Danach soll es alle Dateien aus dem Quellverzeichnis rekursiv durchlaufen werden
3. Jede Datei welche gefunden wird und im Zielverzeichnis noch nicht verschlüsselt angelegt ist soll mit GnuPGP oder Opsenssl verschlüsselt werden und im Zielverzeichnis abgelegt werden (und an der richtigen Stelle in der Ordnerstruktur)
4. Wenn das Skript am nächsten Tag läuft, soll es nur schauen welche Ordner im Quellverzeichnis hinzugefügt wurden und diese im Zielverzeichnis entsprechend ergänzen
5. Nur Dateien welche vor weniger als 3 Stunden erstellt wurden sollen dann wieder verschlüsselt und an der entsprechenden Stelle im Zielverzeichnis abgelegt werden
In einer erweiterten Version wäre es schön, wenn Dateien welche schon existieren und innerhalb der letzten 24 Stunden geändert wurden nochmals verschlüsselt kopiert werden jedoch sollen Sie dann eine laufende Nummer angehangen werden und die alte verschlüsselte Datei nicht ersetzt werden.
Punkt 1 könnte ich auf einem dieser Wege lösen: a) rsync -av -f"+ */" -f"- *" "$source" "$target" b) find . -type d >dirs.txt; xargs mkdir -p <dirs.txt c) cd /path/to/directories && find . -type d -exec mkdir -p – /path/to/backup/{} \;
Punkt 2 könne ich wie folgt lösen: a) $ find srch_dir -cmin -60 # change time oder b) $ find srch_dir -mmin -60 # modification time Was ist hier das richtige? Für mich ist eine Änderung das gleiche wie eine Modifikation?!? Wo liegt der Unterschied?
Punkt 3: Wie übergebe ich dann die Liste der Dateien an z. B. GnuPGP so dass diese die Datei verschlüsseln und jeweils an der richtigen Stelle im Zielverzeichnis ablegen? Mit OpenSSL verschlüsseln ginge z. B. so: openssl enc -e -aes256 -in "$1" -out "$1".enc
Danke für eure Hilfe!
P.S.: Mich stört es, dass ich hier meine Texte nicht schön lesbar formatieren kann ☹