Skip to content
Snippets Groups Projects
Commit 2b746833 authored by Jerome Coste's avatar Jerome Coste
Browse files

pica-backup: update backup script and Dockerfile

parent dc7c52b2
No related branches found
No related tags found
1 merge request!1Unified backup
......@@ -6,12 +6,14 @@ RUN apt-get update && \
postgresql-client \
mysql-client \
cron && \
apt-get clean
apt-get clean \
mkdir /scripts/{mysql,postgresql}
ENV CRON_TIME="0 0 * * *" \
MYSQL_DB="--all-databases"
COPY mysql-run.sh /mysql-run.sh
COPY postgres-run.sh /postgres-backup.sh
COPY mysql-run.sh /scripts/mysql/mysql-run.sh
COPY postgres-run.sh /scripts/postgresql/postgres-backup.sh
VOLUME ["/backup"]
......
......@@ -14,13 +14,17 @@
# MYSQL_CRON_TIME_LIST POSTGRES_CRON_TIME_LIST
# MYSQL_EXTRA_OPTS_LIST POSTGRES_EXTRA_OPTS-LIST
#####################
# Create the arrays #
#####################
IFS=,
#MYSQL
read -a MYSQL_HOST_ARRAY <<< "$MYSQL_HOST_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_MAX_BACKUP_ARRAY <<< "$MYSQL_MAX_BACKUP_LIST"
read -a MYSQL_MAX_BACKUPS_ARRAY <<< "$MYSQL_MAX_BACKUPS_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"
......@@ -30,9 +34,45 @@ read -a POSTGRES_HOST_ARRAY <<< "$POSTGRES_HOST_LIST"
read -a POSTGRES_PORT_ARRAY <<< "$POSTGRES_PORT_LIST"
read -a POSTGRES_USER_ARRAY <<< "$POSTGRES_PASS_LIST"
read -a POSTGRES_DB_ARRAY <<< "$POSTGRES_DB_LIST"
read -a POSTGRES_MAX_BACKUP_ARRAY <<< "$POSTGRES_MAX_BACKUP_LIST"
read -a POSTGRES_MAX_BACKUPS_ARRAY <<< "$POSTGRES_MAX_BACKUPS_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"
###########################
# 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_HOST=${MYSQL_HOST_ARRAY[i]} \
MYSQL_PORT=${MYSQL_PORT_ARRAY[i]} \
MYSQL_USER=${MYSQL_USER_ARRAY[i]} \
MYSQL_PASS=${MYSQL_PASS_ARRAY[i]} \
MAX_BACKUPS=${MYSQL_MAX_BACKUPS_ARRAY[i]} \
INIT_BACKUP=${MYSQL_INIT_BACKUP_ARRAY[i]} \
CRON_TIME=${MYSQL_CRON_TIME_ARRAY[i]} \
EXTRA_OPTS=${MYSQL_EXTRA_OPTS_ARRAY[i]} \
/script/mysql/mysql-run.sh
done
#Execute PostgreSQL backups
NB_CALLS=${#POSTGRES_HOST_ARRAY[@]}
for (( i=0; i < $NB_CALLS; i++ ))
do
POSTGRES_HOST=${POSTGRES_HOST_ARRAY[i]} \
POSTGRES_PORT=${POSTGRES_PORT_ARRAY[i]} \
POSTGRES_USER=${POSTGRES_USER_ARRAY[i]} \
POSTGRES_PASS=${POSTGRES_PASS_ARRAY[i]} \
MAX_BACKUPS=${POSTGRES_MAX_BACKUP_ARRAY[i]} \
INIT_BACKUP=${POSTGRES_INIT_BACKUP_ARRAY[i]} \
CRON_TIME=${POSTGRES_CRON_TIME_ARRAY[i]} \
EXTRA_OPTS=${POSTGRES_EXTRA_OPTS_ARRAY[i]} \
/script/postgresql/postgres-run.sh
done
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment