repair and improve zammad-backup

https://github.com/zammad/zammad-docker-compose/pull/370
This commit is contained in:
matti 2023-09-18 06:43:14 +00:00
parent 5bc358aae4
commit b030765d12

View file

@ -4,11 +4,16 @@ set -e
: "${ZAMMAD_DIR:=/opt/zammad/var}" : "${ZAMMAD_DIR:=/opt/zammad/var}"
: "${BACKUP_DIR:=/var/tmp/zammad}" : "${BACKUP_DIR:=/var/tmp/zammad}"
: "${BACKUP_TIME:=03:00}"
: "${HOLD_DAYS:=10}"
: "${ZAMMAD_RAILSSERVER_HOST:=zammad-railsserver}" : "${ZAMMAD_RAILSSERVER_HOST:=zammad-railsserver}"
: "${ZAMMAD_RAILSSERVER_PORT:=3000}" : "${ZAMMAD_RAILSSERVER_PORT:=3000}"
: "${POSTGRESQL_DB:=zammad_production}"
: "${POSTGRESQL_HOST:=zammad-postgresql}" : "${POSTGRESQL_HOST:=zammad-postgresql}"
: "${POSTGRESQL_PORT:=5432}" : "${POSTGRESQL_PORT:=5432}"
: "${POSTGRESQL_DB:=zammad_production}" : "${POSTGRESQL_USER:=zammad}"
: "${POSTGRESQL_PASS:=zammad}"
function check_railsserver_available { function check_railsserver_available {
until (echo > "/dev/tcp/$ZAMMAD_RAILSSERVER_HOST/$ZAMMAD_RAILSSERVER_PORT") &> /dev/null; do until (echo > "/dev/tcp/$ZAMMAD_RAILSSERVER_HOST/$ZAMMAD_RAILSSERVER_PORT") &> /dev/null; do
@ -20,14 +25,11 @@ function check_railsserver_available {
function zammad_backup { function zammad_backup {
TIMESTAMP="$(date +'%Y%m%d%H%M%S')" TIMESTAMP="$(date +'%Y%m%d%H%M%S')"
echo "${TIMESTAMP} - backuping zammad..." echo "${TIMESTAMP} - backing up zammad..."
# delete old backups # delete old backups
if [ -d "${BACKUP_DIR}" ] && [ -n "$(ls "${BACKUP_DIR}")" ]; then 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 -mtime +"${HOLD_DAYS}" -delete
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
fi fi
if [ "${NO_FILE_BACKUP}" != "yes" ]; then if [ "${NO_FILE_BACKUP}" != "yes" ]; then
@ -36,7 +38,7 @@ function zammad_backup {
fi fi
#db backup #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 :)" echo "backup finished :)"
} }
@ -56,16 +58,17 @@ if [ "$1" = 'zammad-backup' ]; then
sleep $((NEXT_TIMESTAMP - NOW_TIMESTAMP)) sleep $((NEXT_TIMESTAMP - NOW_TIMESTAMP))
done done
fi
if [ "$1" = 'zammad-backup-once' ]; then elif [ "$1" = 'zammad-backup-once' ]; then
check_railsserver_available check_railsserver_available
zammad_backup zammad_backup
fi
if [ "$1" = 'zammad-backup-db' ]; then elif [ "$1" = 'zammad-backup-db' ]; then
NO_FILE_BACKUP="yes" NO_FILE_BACKUP="yes"
zammad_backup zammad_backup
else
exec "$@"
fi fi