48 lines
1.2 KiB
Bash
Executable File
48 lines
1.2 KiB
Bash
Executable File
#!/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!" |