#!/bin/bash set -Eeuo pipefail host="localhost" port="5432" user="postgres" databases=("vsh_store" "time_tracker") backup_name=$(date -u +%Y%m%dT%H%M%SZ) backup_folder=/opt/backup/db for i in "${databases[@]}" do [ ! -d $backup_folder ] && mkdir -p $backup_folder pushd $backup_folder if [ ! -d "$i" ]; then mkdir $i fi cd $i echo "$(date -u +%Y-%m-%d_%H:%M:%SZ) Dumping $i into $backup_folder/$i/$backup_name.psql" pg_dump -U $user -p $port -h $host -Fc --clean --if-exists $i -f $backup_name.psql echo "$(date -u +%Y-%m-%d_%H:%M:%SZ) Dumping $i into $backup_folder/$i/$backup_name.sql" pg_dump -U $user -p $port -h $host --inserts --clean --if-exists $i -f $backup_name.sql popd done