22 lines
654 B
Bash
Executable File
22 lines
654 B
Bash
Executable File
#!/bin/bash
|
|
|
|
DUMP_DIR="/var/backups/dumps/"
|
|
|
|
mkdir -p "$DUMP_DIR"
|
|
chmod go-rwx "$DUMP_DIR"
|
|
|
|
if [ -x /usr/bin/psql ]; then
|
|
#
|
|
su - postgres -c "pg_dumpall --roles-only " | bzip2 > $DUMP_DIR/roles-psql.sql.bz2
|
|
|
|
#
|
|
DATABASES=$(su - postgres -c "psql -t -c \"SELECT datname FROM pg_database AS dbs INNER JOIN pg_authid AS roles ON dbs.datdba=roles.oid WHERE rolname<>'postgres' ;\"")
|
|
echo "Databases: $DATABASES"
|
|
for DATABASE in $DATABASES ; do
|
|
echo "Dumping database: $DATABASE"
|
|
su - postgres -c "pg_dump $DATABASE" | bzip2 - > $DUMP_DIR/$DATABASE-psql.sql.bz2
|
|
done
|
|
else
|
|
echo "DMBS Postgresql not detected."
|
|
fi
|