ids.alfacom.it/deployment/backup_db.sh
marco370 203eaa9a54 Improve system stability by fixing cron job and process monitoring
Refactor cron job execution to use separate shell scripts and update process monitoring scripts to correctly handle PID files and log directories.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: f6d4ec61-7130-41dd-aef9-87b4bc73d0e8
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/3R8dKMX
2025-11-18 08:33:05 +00:00

34 lines
1015 B
Bash

#!/bin/bash
# =========================================================
# BACKUP DATABASE - Backup giornaliero PostgreSQL
# =========================================================
BACKUP_DIR="/opt/ids/backups"
DB_NAME="ids_database"
DB_USER="ids_user"
DB_HOST="127.0.0.1"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/ids_db_$DATE.sql.gz"
LOG_FILE="/var/log/ids/backup.log"
mkdir -p "$BACKUP_DIR"
mkdir -p /var/log/ids
echo "[$(date)] Backup database avviato..." >> "$LOG_FILE"
# Backup database (compressa)
PGPASSWORD=$PGPASSWORD pg_dump -h "$DB_HOST" -U "$DB_USER" "$DB_NAME" | gzip > "$BACKUP_FILE"
if [ $? -eq 0 ]; then
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo "[$(date)] Backup completato: $BACKUP_FILE ($SIZE)" >> "$LOG_FILE"
# Keep only last 7 backups
cd "$BACKUP_DIR"
ls -t ids_db_*.sql.gz | tail -n +8 | xargs -r rm
echo "[$(date)] Cleanup backup vecchi completato" >> "$LOG_FILE"
else
echo "[$(date)] ERRORE backup database!" >> "$LOG_FILE"
exit 1
fi