30 lines
779 B
Bash
30 lines
779 B
Bash
#!/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
|