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