#!/bin/bash # DB_TYPE : MYSQL|POSTGRES # MYSQL POSTGRESQL MONGODB # MYSQL_SERVICE_NAME_LIST POSTGRES_SERVICE_NAME_LIST MONGO_SERVICE_NAME_LIST # MYSQL_HOST_LIST POSTGRES_HOST_LIST MONGO_HOST_LIST # MYSQL_PORT_LIST POSTGRES_PORT_LIST MONGO_PORT_LIST # MYSQL_USER_LIST POSTGRES_USER_LIST MONGO_USER_LIST # MYSQL_PASS_LIST POSTGRES_PASS_LIST MONGO_PASS_LIST # MYSQL_DB_LIST POSTGRES_DB_LIST MONGO_DB_LIST # MYSQL_INIT_BACKUP_LIST POSTGRES_INIT_BACKUP_LIST MONGO_INIT_BACKUP_LIST # MYSQL_CRON_TIME_LIST POSTGRES_CRON_TIME_LIST MONGO_CRON_TIME_LIST # MYSQL_EXTRA_OPTS_LIST POSTGRES_EXTRA_OPTS-LIST MONGO_BACKUP_FOLDER_LIST # MYSQL_BACKUP_FOLDER_LIST POSTGRESQL_BACKUP_FOLDER_LIST ##################### # Create the arrays # ##################### IFS=, #MYSQL read -a MYSQL_HOST_ARRAY <<< "$MYSQL_HOST_LIST" read -a MYSQL_SERVICE_NAME_ARRAY <<< "$MYSQL_SERVICE_NAME_LIST" read -a MYSQL_PORT_ARRAY <<< "$MYSQL_PORT_LIST" read -a MYSQL_USER_ARRAY <<< "$MYSQL_USER_LIST" read -a MYSQL_PASS_ARRAY <<< "$MYSQL_PASS_LIST" read -a MYSQL_DB_ARRAY <<< "$MYSQL_DB_LIST" read -a MYSQL_INIT_BACKUP_ARRAY <<< "$MYSQL_INIT_BACKUP_LIST" read -a MYSQL_CRON_TIME_ARRAY <<< "$MYSQL_CRON_TIME_LIST" read -a MYSQL_EXTRA_OPTS_ARRAY <<< "$MYSQL_EXTRA_OPTS_LIST" read -a MYSQL_BACKUP_FOLDER_ARRAY <<< "$MYSQL_BACKUP_FOLDER_LIST" #POSTGRES read -a POSTGRES_HOST_ARRAY <<< "$POSTGRES_HOST_LIST" read -a POSTGRES_SERVICE_NAME_ARRAY <<< "$POSTGRES_SERVICE_NAME_LIST" read -a POSTGRES_PORT_ARRAY <<< "$POSTGRES_PORT_LIST" read -a POSTGRES_USER_ARRAY <<< "$POSTGRES_USER_LIST" read -a POSTGRES_PASS_ARRAY <<< "$POSTGRES_PASS_LIST" read -a POSTGRES_DB_ARRAY <<< "$POSTGRES_DB_LIST" read -a POSTGRES_INIT_BACKUP_ARRAY <<< "$POSTGRES_INIT_BACKUP_LIST" read -a POSTGRES_CRON_TIME_ARRAY <<< "$POSTGRES_CRON_TIME_LIST" read -a POSTGRES_EXTRA_OPTS_ARRAY <<< "$POSTGRES_EXTRA_OPTS_LIST" read -a POSTGRES_BACKUP_FOLDER_ARRAY <<< "$POSTGRES_BACKUP_FOLDER_LIST" #MONGO read -a MONGO_HOST_ARRAY <<< "$MONGO_HOST_LIST" read -a MONGO_SERVICE_NAME_ARRAY <<< "$MONGO_SERVICE_NAME_LIST" read -a MONGO_PORT_ARRAY <<< "$MONGO_PORT_LIST" read -a MONGO_USER_ARRAY <<< "$MONGO_USER_LIST" read -a MONGO_PASS_ARRAY <<< "$MONGO_PASS_LIST" read -a MONGO_DB_ARRAY <<< "$MONGO_DB_LIST" read -a MONGO_INIT_BACKUP_ARRAY <<< "$MONGO_INIT_BACKUP_LIST" read -a MONGO_CRON_TIME_ARRAY <<< "$MONGO_CRON_TIME_LIST" read -a MONGO_BACKUP_FOLDER_ARRAY <<< "$MONGO_BACKUP_FOLDER_LIST" ########################### # Call the backup scripts # ########################### # Define the scripts location #Execute MySQL backups NB_CALLS=${#MYSQL_HOST_ARRAY[@]} for (( i=0; i < $NB_CALLS; i++ )) do MYSQL_SERVICE_NAME=${MYSQL_SERVICE_NAME_ARRAY[i]} \ MYSQL_HOST=${MYSQL_HOST_ARRAY[i]} \ MYSQL_PORT=${MYSQL_PORT_ARRAY[i]} \ MYSQL_USER=${MYSQL_USER_ARRAY[i]} \ MYSQL_PASS=${MYSQL_PASS_ARRAY[i]} \ MYSQL_DB=${MYSQL_DB_ARRAY[i]} \ INIT_BACKUP=${MYSQL_INIT_BACKUP_ARRAY[i]} \ CRON_TIME=${MYSQL_CRON_TIME_ARRAY[i]} \ EXTRA_OPTS=${MYSQL_EXTRA_OPTS_ARRAY[i]} \ BACKUP_FOLDER="/backup/${MYSQL_BACKUP_FOLDER_ARRAY[i]}/" \ /scripts/mysql/mysql-run.sh done #Execute PostgreSQL backups NB_CALLS=${#POSTGRES_HOST_ARRAY[@]} for (( i=0; i < $NB_CALLS; i++ )) do POSTGRES_SERVICE_NAME=${POSTGRES_SERVICE_NAME_ARRAY[i]} \ POSTGRES_HOST=${POSTGRES_HOST_ARRAY[i]} \ POSTGRES_PORT=${POSTGRES_PORT_ARRAY[i]} \ POSTGRES_USER=${POSTGRES_USER_ARRAY[i]} \ POSTGRES_PASS=${POSTGRES_PASS_ARRAY[i]} \ POSTGRES_DB=${POSTGRES_DB_ARRAY[i]} \ INIT_BACKUP=${POSTGRES_INIT_BACKUP_ARRAY[i]} \ CRON_TIME=${POSTGRES_CRON_TIME_ARRAY[i]} \ EXTRA_OPTS=${POSTGRES_EXTRA_OPTS_ARRAY[i]} \ BACKUP_FOLDER="/backup/${POSTGRES_BACKUP_FOLDER_ARRAY[i]}/" \ /scripts/postgresql/postgres-run.sh done #Execute MongoDB backups NB_CALLS=${#MONGO_HOST_ARRAY[@]} for (( i=0; i < $NB_CALLS; i++ )) do MONGO_SERVICE_NAME=${MONGO_SERVICE_NAME_ARRAY[i]} \ MONGO_HOST=${MONGO_HOST_ARRAY[i]} \ MONGO_PORT=${MONGO_PORT_ARRAY[i]} \ MONGO_USER=${MONGO_USER_ARRAY[i]} \ MONGO_PASS=${MONGO_PASS_ARRAY[i]} \ MONGO_DB=${MONGO_DB_ARRAY[i]} \ INIT_BACKUP=${MONGO_INIT_BACKUP_ARRAY[i]} \ CRON_TIME=${MONGO_CRON_TIME_ARRAY[i]} \ BACKUP_FOLDER="/backup/${MONGO_BACKUP_FOLDER_ARRAY[i]}/" \ /scripts/mongodb/mongo-run.sh done exec cron -f