Bash script to backup

This commit is contained in:
marcymeer 2025-03-15 15:17:01 +01:00
parent 741a613990
commit 9cea374e12

58
backup.sh Normal file
View File

@ -0,0 +1,58 @@
#!/bin/bash
# Configuration
DB_HOST="remote_server_address"
DB_USER="database_username"
DB_PASS="database_password"
DB_NAME="database_name"
DB_PORT="3306"
# Git repository path
REPO_PATH="/path/to/your/git/repository"
# Backup directory inside the repository
BACKUP_DIR="${REPO_PATH}/database_backups"
# Backup filename with timestamp
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="${BACKUP_DIR}/backup_${DB_NAME}_${TIMESTAMP}.sql"
# Create the backup directory if it doesn't exist
mkdir -p "${BACKUP_DIR}"
# Perform the database backup
echo "Starting backup of ${DB_NAME} from ${DB_HOST}..."
mysqldump -h "${DB_HOST}" -P "${DB_PORT}" -u "${DB_USER}" -p"${DB_PASS}" "${DB_NAME}" > "${BACKUP_FILE}"
# Check if backup was successful
if [ $? -eq 0 ]; then
echo "Database backup completed successfully: ${BACKUP_FILE}"
# Compress the backup file
gzip "${BACKUP_FILE}"
BACKUP_FILE="${BACKUP_FILE}.gz"
echo "Backup file compressed: ${BACKUP_FILE}"
# Add the backup to Git
cd "${REPO_PATH}"
git add "${BACKUP_FILE}"
# Commit the changes
git commit -m "Database backup: ${DB_NAME} - ${TIMESTAMP}"
# Push to remote repository
git push origin main
# Check if Git operations were successful
if [ $? -eq 0 ]; then
echo "Backup successfully pushed to Git repository."
else
echo "Error: Failed to push backup to Git repository."
exit 1
fi
else
echo "Error: Database backup failed."
exit 1
fi
echo "Backup process completed."