From b030765d127c27d9d9f915dfd4cf46c0297c59d9 Mon Sep 17 00:00:00 2001 From: matti Date: Mon, 18 Sep 2023 06:43:14 +0000 Subject: [PATCH] repair and improve zammad-backup https://github.com/zammad/zammad-docker-compose/pull/370 --- scripts/backup.sh | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/scripts/backup.sh b/scripts/backup.sh index 338ef42..a8596a8 100644 --- a/scripts/backup.sh +++ b/scripts/backup.sh @@ -4,11 +4,16 @@ set -e : "${ZAMMAD_DIR:=/opt/zammad/var}" : "${BACKUP_DIR:=/var/tmp/zammad}" +: "${BACKUP_TIME:=03:00}" +: "${HOLD_DAYS:=10}" : "${ZAMMAD_RAILSSERVER_HOST:=zammad-railsserver}" : "${ZAMMAD_RAILSSERVER_PORT:=3000}" +: "${POSTGRESQL_DB:=zammad_production}" : "${POSTGRESQL_HOST:=zammad-postgresql}" : "${POSTGRESQL_PORT:=5432}" -: "${POSTGRESQL_DB:=zammad_production}" +: "${POSTGRESQL_USER:=zammad}" +: "${POSTGRESQL_PASS:=zammad}" + function check_railsserver_available { until (echo > "/dev/tcp/$ZAMMAD_RAILSSERVER_HOST/$ZAMMAD_RAILSSERVER_PORT") &> /dev/null; do @@ -20,14 +25,11 @@ function check_railsserver_available { function zammad_backup { TIMESTAMP="$(date +'%Y%m%d%H%M%S')" - echo "${TIMESTAMP} - backuping zammad..." + echo "${TIMESTAMP} - backing up zammad..." # delete old backups if [ -d "${BACKUP_DIR}" ] && [ -n "$(ls "${BACKUP_DIR}")" ]; then -# modified version: this deletes everything older than 12 hours - find "${BACKUP_DIR}"/*_zammad_*.gz -type f -mmin +720 -delete -# original version of the script -# find "${BACKUP_DIR}"/*_zammad_*.gz -type f -mtime +"${HOLD_DAYS}" -delete + find "${BACKUP_DIR}"/*_zammad_*.gz -type f -mtime +"${HOLD_DAYS}" -delete fi if [ "${NO_FILE_BACKUP}" != "yes" ]; then @@ -36,7 +38,7 @@ function zammad_backup { fi #db backup - pg_dump --dbname=postgresql://"${POSTGRESQL_USER}:${POSTGRESQL_PASSWORD}@${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/${POSTGRESQL_DB}" | gzip > "${BACKUP_DIR}"/"${TIMESTAMP}"_zammad_db.psql.gz + pg_dump --dbname=postgresql://"${POSTGRESQL_USER}:${POSTGRESQL_PASS}@${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/${POSTGRESQL_DB}" | gzip > "${BACKUP_DIR}"/"${TIMESTAMP}"_zammad_db.psql.gz echo "backup finished :)" } @@ -56,16 +58,17 @@ if [ "$1" = 'zammad-backup' ]; then sleep $((NEXT_TIMESTAMP - NOW_TIMESTAMP)) done -fi -if [ "$1" = 'zammad-backup-once' ]; then +elif [ "$1" = 'zammad-backup-once' ]; then check_railsserver_available zammad_backup -fi -if [ "$1" = 'zammad-backup-db' ]; then +elif [ "$1" = 'zammad-backup-db' ]; then NO_FILE_BACKUP="yes" zammad_backup + +else + exec "$@" fi