Files
ecommerce-platform/scripts/backup.sh
T

30 lines
960 B
Bash
Raw Normal View History

#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
BACKUP_DIR="${BACKUP_DIR:-$PROJECT_DIR/backups}"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_PATH="$BACKUP_DIR/$TIMESTAMP"
mkdir -p "$BACKUP_PATH"
echo "[1/2] Backup database..."
docker compose -f "$PROJECT_DIR/docker-compose.yml" exec -T db \
pg_dump -U ecommerce ecommerce | gzip > "$BACKUP_PATH/db.sql.gz"
echo "$BACKUP_PATH/db.sql.gz"
echo "[2/2] Backup uploads..."
if [ -d "$PROJECT_DIR/data/uploads" ] && [ "$(ls -A "$PROJECT_DIR/data/uploads")" ]; then
tar -czf "$BACKUP_PATH/uploads.tar.gz" -C "$PROJECT_DIR/data" uploads
echo "$BACKUP_PATH/uploads.tar.gz"
else
echo " (nessun file in data/uploads, saltato)"
fi
echo ""
echo "Backup completato: $BACKUP_PATH"
# Rimuovi backup più vecchi di 30 giorni
find "$BACKUP_DIR" -maxdepth 1 -type d -mtime +30 -exec rm -rf {} + 2>/dev/null || true