From 6d98c1ba532953b9a66c4d4e816e322167817bcd Mon Sep 17 00:00:00 2001 From: Aaron Johnon Date: Thu, 8 Jul 2021 00:52:04 -0500 Subject: [PATCH] added postgres_backup.sh --- postgres_backup.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 postgres_backup.sh diff --git a/postgres_backup.sh b/postgres_backup.sh new file mode 100755 index 0000000..17b4702 --- /dev/null +++ b/postgres_backup.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env sh + +# CONFIG +### Example Config File ############ +### +### PORT=5432 +### DIR=/var/lib/pgsql/backup +### COMPRESSION=zstd +### COMP_LEVEL=14 +### THREADS=2 +### +#################################### + +source ${HOME}/.postgres_backup.conf +# END CONFIG + +## Check if automated, set appropriate directory +[ "$1" = "auto" ] && DIR=${DIR}/auto || DIR=${DIR}/manual + +## Set date for timestamp +DATE=$(date +%Y%m%d-%H%M) + +## Get list of DBs +list_db=$(psql -p${PORT} -U postgres -t -c 'select datname from pg_database;' | grep -v 'template0\|template1\|postgres' | sed '/^$/d') + +for db in $list_db; do + case $COMPRESSION in + xz) + pg_dump -O $db | xz -T${THREADS} -${COMP_LEVEL} - > ${DIR}/${db}-${DATE}.dmp.xz + ;; + zstd) + pg_dump -O $db | zstd -T${THREADS} -${COMP_LEVEL} -z - > ${DIR}/${db}-${DATE}.dmp.zst + ;; + *) + echo "ERROR 11: Compression not configured correctly!" + exit 11 + ;; + esac +done + +## Dump Globals +pg_dumpall -p${PORT} -g > ${DIR}/globals_${DATE}.dmp + +exit 0 +