Files
Server-MrHossa/SCRIPTS/archive-encrypt.sh
T

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