mysql/scripts/backup_databases.sh
2025-02-18 16:10:27 +03:00

44 lines
1.3 KiB
Bash

#!/bin/bash
# Database credentials
HOST="10.5.48.47"
PORT="3307"
USER="root"
PASSWORD="xM9A4!exJbQNhqJ"
# Directories
BACKUP_DIR="/app/simfony_deployments/mysql/mysql_dump_bkp/backup_dump"
LOG_FILE="/app/simfony_deployments/mysql/mysql_dump_bkp/backup.log"
# Timestamp format
CURRENT_HOUR=$(date +"%Y%m%d%H")
CURRENT_TIME=$(date +"%Y%m%d%H%M")
# Databases to back up
DATABASES=("ipam" "mobility" "notification" "provisioning" "sso_db" "web_db" "simfony_web_db")
# Create backup directory if it doesn't exist
mkdir -p $BACKUP_DIR
# Backup databases
for DB in "${DATABASES[@]}"; do
FILENAME="$BACKUP_DIR/${DB}_$CURRENT_TIME.sql"
mysqldump -h $HOST -P $PORT -u $USER -p$PASSWORD $DB > $FILENAME 2>> $LOG_FILE
if [ $? -eq 0 ]; then
if [[ "${FILENAME}" != *"${CURRENT_HOUR}.sql" ]]; then
gzip $FILENAME
if [ $? -eq 0 ]; then
echo "[$(date)] Backup and compression successful for database '$DB'. File: $FILENAME.gz" >> $LOG_FILE
else
echo "[$(date)] Backup successful but compression failed for database '$DB'. File: $FILENAME" >> $LOG_FILE
fi
else
echo "[$(date)] Backup successful for database '$DB'. File: $FILENAME" >> $LOG_FILE
fi
else
echo "[$(date)] Backup failed for database '$DB'." >> $LOG_FILE
fi
done