#!/bin/bash DATE=$(date +%F) DIRBACKUP="/data/backups" DBUSER="postgres" getDbName() { docker exec postgresql bash -c "psql -lA -x -U postgres -p 5432 -d postgres | \ grep Name | grep -v -P 'template0|template1' | cut -f 2 -d '|'" } DBLIST=$(getDbName) createBackup() { for db in $DBLIST; do echo "====================================" echo "START create backup database: ${db}" docker exec postgresql bash -c "pg_dump -Fc -U ${DBUSER} -p 5432 -d ${db}" > "${DIRBACKUP}/${db}-${DATE}".sql bzip2 -9 "${DIRBACKUP}/${db}-${DATE}".sql echo "END database bzip2: ${db}" done } [[ $(ls -A ${DIRBACKUP}) ]] 2>/dev/null && echo "dir ${DIRBACKUP} not empty" && exit 123 createBackup