#!/bin/bash # Configuration CONTAINER_NAME="ckb-mysql-dev" DB_NAME="ckb_db" DB_USER="root" DB_PASSWORD="root" BACKUP_DIR="./backups" DATE=$(date +%Y%m%d_%H%M%S) BACKUP_FILE="ckb_backup_${DATE}.sql" # Create backup directory if it doesn't exist mkdir -p $BACKUP_DIR # Check if container is running if ! docker ps | grep -q $CONTAINER_NAME; then echo "Error: Container $CONTAINER_NAME is not running!" exit 1 fi echo "Starting database backup..." echo "Container: $CONTAINER_NAME" echo "Database: $DB_NAME" echo "Backup file: $BACKUP_DIR/$BACKUP_FILE" # Create backup if docker exec $CONTAINER_NAME mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > "$BACKUP_DIR/$BACKUP_FILE"; then echo "✅ Backup completed successfully!" echo "📁 File saved: $BACKUP_DIR/$BACKUP_FILE" # Show file size FILE_SIZE=$(du -h "$BACKUP_DIR/$BACKUP_FILE" | cut -f1) echo "📊 File size: $FILE_SIZE" # Optional: Compress the backup read -p "Do you want to compress the backup? (y/n): " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then gzip "$BACKUP_DIR/$BACKUP_FILE" echo "🗜️ Backup compressed: $BACKUP_DIR/$BACKUP_FILE.gz" fi else echo "❌ Backup failed!" exit 1 fi echo "🎉 Backup process completed!"