Dump PG DBs before doing full system backups
This commit is contained in:
parent
e9eccef348
commit
09bdb80712
@ -73,6 +73,32 @@ backup() {
|
|||||||
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
|
||||||
|
|
||||||
# Tar up all items in the backup list, recursively, and pipe them straight
|
# Tar up all items in the backup list, recursively, and pipe them straight
|
||||||
# up to S3
|
# up to S3
|
||||||
if [ -n "${DIRS[*]}" ]; then
|
if [ -n "${DIRS[*]}" ]; then
|
||||||
@ -106,29 +132,3 @@ if [ -n "${DIRS[*]}" ]; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
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