Initial commit: management
This commit is contained in:
commit
ab329d497b
8 changed files with 243 additions and 0 deletions
46
backup/backup.sh
Normal file
46
backup/backup.sh
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||||
BACKUP_DIR=/backups
|
||||
PG_HOST=10.10.10.100
|
||||
|
||||
mkdir -p "$BACKUP_DIR/postgres/daily" "$BACKUP_DIR/postgres/weekly" "$BACKUP_DIR/volumes"
|
||||
|
||||
log() { echo "[$(date '+%H:%M:%S')] $1"; }
|
||||
|
||||
# ── PostgreSQL dumps ──────────────────────────────────────────────────────────
|
||||
log "Starting PostgreSQL backups..."
|
||||
for DB in $BACKUP_DATABASES; do
|
||||
OUTFILE="$BACKUP_DIR/postgres/daily/${DB}_${TIMESTAMP}.sql.gz"
|
||||
PGPASSWORD="$PG_SUPERPASS" pg_dump -h "$PG_HOST" -U postgres "$DB" | gzip > "$OUTFILE"
|
||||
log " $DB → $(du -sh "$OUTFILE" | cut -f1)"
|
||||
done
|
||||
|
||||
# Weekly full dump on Sundays
|
||||
if [ "$(date +%u)" = "7" ]; then
|
||||
log "Weekly full dump..."
|
||||
PGPASSWORD="$PG_SUPERPASS" pg_dumpall -h "$PG_HOST" -U postgres \
|
||||
| gzip > "$BACKUP_DIR/postgres/weekly/full_${TIMESTAMP}.sql.gz"
|
||||
fi
|
||||
|
||||
# ── Retention cleanup ─────────────────────────────────────────────────────────
|
||||
find "$BACKUP_DIR/postgres/daily" -name "*.gz" -mtime +7 -delete
|
||||
find "$BACKUP_DIR/postgres/weekly" -name "*.gz" -mtime +28 -delete
|
||||
log "Retention cleanup done"
|
||||
|
||||
# ── Rsync to remote ───────────────────────────────────────────────────────────
|
||||
if [ -n "$BACKUP_REMOTE" ]; then
|
||||
log "Syncing to $BACKUP_REMOTE..."
|
||||
rsync -az --delete \
|
||||
-e "ssh -i /root/.ssh/id_ed25519 -o StrictHostKeyChecking=no" \
|
||||
"$BACKUP_DIR/" "$BACKUP_REMOTE"
|
||||
log "Sync complete"
|
||||
fi
|
||||
|
||||
# ── Uptime Kuma heartbeat ─────────────────────────────────────────────────────
|
||||
if [ -n "$KUMA_PUSH_URL" ]; then
|
||||
wget -qO- "$KUMA_PUSH_URL?status=up&msg=Backup+OK&ping=" > /dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
log "Backup complete"
|
||||
Loading…
Add table
Add a link
Reference in a new issue