Dump PG DBs before doing full system backups
This commit is contained in:
parent
e9eccef348
commit
09bdb80712
@ -73,6 +73,32 @@ backup() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Dump Postgres DBs, if possible
|
||||
if command -v psql > /dev/null 2>&1; then
|
||||
# Populate a list of databases
|
||||
declare -a DATABASES
|
||||
while read line; do
|
||||
DATABASES+=("$line")
|
||||
done < <(sudo -u postgres psql -t -A -c "SELECT datname FROM pg_database where datname not in ('template0', 'template1', 'postgres');" 2>/dev/null)
|
||||
|
||||
# pgdump all DBs, compress them, and pipe straight up to S3
|
||||
echo "Commencing backup on the following databases:"
|
||||
for dir in "${DATABASES[@]}"; do
|
||||
echo "- $dir"
|
||||
done
|
||||
echo "Will upload resultant backups to {{ backup_s3_bucket }}"
|
||||
for db in "${DATABASES[@]}"; do
|
||||
echo "Backing up $db"
|
||||
sudo -u postgres pg_dump "$db" \
|
||||
| gzip -v9 \
|
||||
| aws s3 cp - \
|
||||
{% if backup_s3_aws_endpoint_url is defined %}
|
||||
--endpoint-url="{{ backup_s3_aws_endpoint_url }}" \
|
||||
{% endif %}
|
||||
"s3://{{ backup_s3_bucket }}/$HOSTNAME/pgdump/$db/$(date "+{{ backup_dateformat }}").pgsql.gz"
|
||||
done
|
||||
fi
|
||||
|
||||
# Tar up all items in the backup list, recursively, and pipe them straight
|
||||
# up to S3
|
||||
if [ -n "${DIRS[*]}" ]; then
|
||||
@ -106,29 +132,3 @@ if [ -n "${DIRS[*]}" ]; then
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Dump Postgres DBs, if possible
|
||||
if command -v psql > /dev/null 2>&1; then
|
||||
# Populate a list of databases
|
||||
declare -a DATABASES
|
||||
while read line; do
|
||||
DATABASES+=("$line")
|
||||
done < <(sudo -u postgres psql -t -A -c "SELECT datname FROM pg_database where datname not in ('template0', 'template1', 'postgres');" 2>/dev/null)
|
||||
|
||||
# pgdump all DBs, compress them, and pipe straight up to S3
|
||||
echo "Commencing backup on the following databases:"
|
||||
for dir in "${DATABASES[@]}"; do
|
||||
echo "- $dir"
|
||||
done
|
||||
echo "Will upload resultant backups to {{ backup_s3_bucket }}"
|
||||
for db in "${DATABASES[@]}"; do
|
||||
echo "Backing up $db"
|
||||
sudo -u postgres pg_dump "$db" \
|
||||
| gzip -v9 \
|
||||
| aws s3 cp - \
|
||||
{% if backup_s3_aws_endpoint_url is defined %}
|
||||
--endpoint-url="{{ backup_s3_aws_endpoint_url }}" \
|
||||
{% endif %}
|
||||
"s3://{{ backup_s3_bucket }}/$HOSTNAME/pgdump/$db/$(date "+{{ backup_dateformat }}").pgsql.gz"
|
||||
done
|
||||
fi
|
||||
|
Loading…
x
Reference in New Issue
Block a user