docker-postgres/backup-database.sh

28 lines
988 B
Bash
Executable File

#!/bin/bash
set -e
dt=$(date '+%d/%m/%Y %H:%M:%S');
fileDt=$(date '+%d_%m_%Y_%H_%M_%S');
backUpFileName="postgres-backup-$fileDt.gz"
backUpFilePath="$BACKUP_DESTINATION_FOLDER/$backUpFileName"
if $PURGE_OLD; then DRY_RUN=false; else DRY_RUN=true; fi
echo "Following file are older than 14 day, it will be deleted (dry-run $DRY_RUN)"
find /var/lib/backup/ -type f -mtime +14 -name '*.gz' -execdir ls -- '{}' \;
if [ $PURGE_OLD = true ]; then
find /var/lib/backup/ -type f -mtime +14 -name '*.gz' -execdir rm -- '{}' \;
fi
echo "$dt - Starting DB backup into file: $backUpFilePath";
echo "$dt - Running: pg_dumpall -h $BACKUP_SOURCE_DB_HOST_NAME -U $POSTGRES_USER -c | gzip > $backUpFilePath"
pg_dumpall --if-exists -h $BACKUP_SOURCE_DB_HOST_NAME -U $POSTGRES_USER -c | gzip > $backUpFilePath
if [ $? -ne 0 ]; then
rm $backUpFilePath
echo "Unable to execute a BackUp. Please check DB connection settings"
exit 1
fi
echo "$dt - DB backup completed into file: $backUpFilePath";