#!/bin/bash # LuckyChit Database Backup Script set -e DB_NAME="luckychit" DB_USER="luckychit" DB_HOST="localhost" BACKUP_DIR="/home/luckychit/backups" RETENTION_DAYS=7 mkdir -p "$BACKUP_DIR" TIMESTAMP=$(date +%Y%m%d_%H%M%S) BACKUP_FILE="$BACKUP_DIR/luckychit_backup_$TIMESTAMP.sql" echo "๐Ÿ—„๏ธ Starting database backup..." echo "Database: $DB_NAME" echo "Backup file: $BACKUP_FILE" echo "" pg_dump -U "$DB_USER" -h "$DB_HOST" "$DB_NAME" > "$BACKUP_FILE" if [ $? -eq 0 ]; then FILE_SIZE=$(du -h "$BACKUP_FILE" | cut -f1) echo "โœ… Backup completed successfully!" echo "๐Ÿ“ฆ File size: $FILE_SIZE" echo "" echo "๐Ÿ—œ๏ธ Compressing backup..." gzip "$BACKUP_FILE" COMPRESSED_SIZE=$(du -h "$BACKUP_FILE.gz" | cut -f1) echo "โœ… Compressed size: $COMPRESSED_SIZE" echo "" echo "๐Ÿงน Cleaning up old backups (older than $RETENTION_DAYS days)..." DELETED=$(find "$BACKUP_DIR" -name "luckychit_backup_*.sql.gz" -mtime +$RETENTION_DAYS -delete -print | wc -l) echo "โœ… Deleted $DELETED old backup(s)" echo "" echo "๐Ÿ“Š Current backups:" ls -lh "$BACKUP_DIR"/luckychit_backup_*.sql.gz 2>/dev/null || echo "No backups found" echo "" echo "โœ… Backup complete: $BACKUP_FILE.gz" else echo "โŒ Backup failed!" exit 1 fi