From 2b746833443e0069fa810eec7c6c7da3ffecd5d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Coste?= <jerome.coste@etu.utc.fr> Date: Thu, 9 Nov 2017 17:28:30 +0100 Subject: [PATCH] pica-backup: update backup script and Dockerfile --- pica-backup/Dockerfile | 8 +++++--- pica-backup/run.sh | 44 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/pica-backup/Dockerfile b/pica-backup/Dockerfile index 3bc49eab..14ded587 100644 --- a/pica-backup/Dockerfile +++ b/pica-backup/Dockerfile @@ -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"] diff --git a/pica-backup/run.sh b/pica-backup/run.sh index e5c0ae6b..6892549b 100755 --- a/pica-backup/run.sh +++ b/pica-backup/run.sh @@ -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 -- GitLab