daily_folder_backup.sh

Initiale Version
This commit is contained in:
Marc Blatter 2025-10-21 18:02:32 +00:00
parent d6e471e63c
commit 7373285329
1 changed files with 39 additions and 0 deletions

39
daily_folder_backup.sh Normal file
View File

@ -0,0 +1,39 @@
#!/bin/bash
# /opt/backup/daily_folder_backup.sh
BACKUP_DIR="/opt/backup"
RETENTION_DAYS=3
DATE=$(date +'%Y-%m-%d')
FOLDERS=(
"/opt/nextcloud"
"/opt/odoo"
"/opt/paperless"
)
STATUS=0
FAILED_LIST=()
for SRC in "${FOLDERS[@]}"; do
BASENAME=$(basename "$SRC")
DEST="${BACKUP_DIR}/${DATE}_${BASENAME}.tar.gz"
tar -czf "$DEST" "$SRC" 2>/dev/null
if [ $? -ne 0 ]; then
STATUS=1
FAILED_LIST+=("$BASENAME")
fi
done
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +"$RETENTION_DAYS" -exec rm {} \;
# JSON-Ausgabe erzeugen
if [ $STATUS -eq 0 ]; then
echo "{\"status\": \"success\", \"failed\": []}"
else
FAILED_JSON=$(printf '"%s",' "${FAILED_LIST[@]}")
FAILED_JSON="[${FAILED_JSON%,}]"
echo "{\"status\": \"error\", \"failed\": $FAILED_JSON}"
fi
exit $STATUS