39 lines
1.2 KiB
Bash
Executable File
39 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
SRC_DIR="/data/TEMP"
|
|
OUT_DIR="/data/TEMP/encrypted"
|
|
#PASSWORD=$(cat /etc/backup-secret.key)
|
|
PASSWORD="bBHofurUJWKzPE8Z"
|
|
PATTERN="Database-*"
|
|
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
for file in "$SRC_DIR"/$PATTERN; do
|
|
[ -e "$file" ] || continue
|
|
filename=$(basename "$file")
|
|
|
|
if [[ "$filename" == *.tar || "$filename" == *.tar.gz || "$filename" == *.tgz ]]; then
|
|
echo "$(date '+%F %T') - Übersprungen (bereits Archiv): $filename"
|
|
continue
|
|
fi
|
|
|
|
enc_file="$OUT_DIR/${filename}.tar.gz.enc"
|
|
|
|
if [ -e "$enc_file" ]; then
|
|
echo "$(date '+%F %T') - Übersprungen (bereits verschlüsselt): $filename"
|
|
continue
|
|
fi
|
|
|
|
tar -cf - -C "$SRC_DIR" "$filename" | pigz | \
|
|
openssl enc -aes-256-cbc -salt -pbkdf2 -pass pass:"$PASSWORD" -out "$enc_file"
|
|
|
|
# Nur löschen wenn die Pipeline erfolgreich war UND die Datei existiert und nicht leer ist
|
|
if [ ${PIPESTATUS[2]} -eq 0 ] && [ -s "$enc_file" ]; then
|
|
rm -f "$file"
|
|
echo "$(date '+%F %T') - Verarbeitet und Original gelöscht: $filename -> $enc_file"
|
|
else
|
|
echo "$(date '+%F %T') - FEHLER bei $filename - Original NICHT gelöscht" >&2
|
|
rm -f "$enc_file" # ggf. kaputte/leere Ausgabedatei entfernen
|
|
fi
|
|
done
|