parent
d6e471e63c
commit
7373285329
|
|
@ -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
|
||||
Loading…
Reference in New Issue