File: //bigscoots/wpo/backups/additional_dbs.sh
#!/bin/bash
source /bigscoots/includes/common.sh
# Path to the database list file
DB_FILE="/root/.bigscoots/additional.databases"
# Exit if DB_FILE doesn't exist
[ -f "$DB_FILE" ] || exit 0
# Function to create database dumps
create_backups() {
while read -r database_name database_path; do
if [[ -n "$database_name" && -n "$database_path" ]]; then
BACKUP_FILE="${database_path}/${database_name}.sql"
# Perform the database backup and check for failure
if ! mysqldump --single-transaction "$database_name" > "$BACKUP_FILE"; then
send_slack_alert "#wpo-backups" ":x:" "Additional Databases" "NA" "Database backup failed for $database_name in $database_path"
fi
fi
done < "$DB_FILE"
}
# Function to clean up database dumps
cleanup_backups() {
while read -r database_name database_path; do
if [[ -n "$database_name" && -n "$database_path" ]]; then
BACKUP_FILE="${database_path}/${database_name}.sql"
# Remove the backup file and check for failure
if [[ -f "$BACKUP_FILE" ]]; then
if ! rm -f "$BACKUP_FILE"; then
send_slack_alert "#wpo-backups" ":x:" "Additional Databases" "NA" "Failed to remove backup for $database_name at $database_path"
fi
fi
fi
done < "$DB_FILE"
}
# Main script execution
case "$1" in
create)
create_backups
;;
cleanup)
cleanup_backups
;;
*)
exit 1
;;
esac