Files
cc/app/backup
T
2026-04-21 12:17:33 -03:00

44 lines
788 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# === CONFIG ===
REPO="/backups/borgrepo"
HOSTS_FILE="host_vars/hosts"
ARCHIVE_NAME="backup-$(date +%Y-%m-%d)"
# === BUILD SOURCE LIST ===
SOURCES=()
while read -r host; do
[[ -z "$host" || "$host" =~ ^# ]] && continue
SOURCES+=("${host}:/")
done < "$HOSTS_FILE"
echo "Backing up hosts:"
printf ' - %s\n' "${SOURCES[@]}"
# === CREATE BACKUP (ONLY current*) ===
borg create \
"$REPO::$ARCHIVE_NAME" \
"${SOURCES[@]}" \
--patterns-from <(cat <<'EOF'
R sh:**
+ sh:**/current*
- sh:**
EOF
) \
--stats \
--compression lz4
# === RETENTION POLICY ===
echo "Applying retention policy..."
borg prune \
"$REPO" \
--keep-daily=7 \
--keep-weekly=8 \
--prefix "backup-" \
--stats
echo "Done: $ARCHIVE_NAME"