Автоматическое создание backup

Ниже написан скрипт для автоматического создания копии БД с последующим восстановлением на тестовой среде.

#!/bin/bash
echo "Архивация БД vote-dev"
dir_folder=/var/lib/postgresql/vote-dev
mkdir -p $dir_folder
cd $dir_folder
# создание backup
pg_dump vote-dev > $dir_folder/vote-dev-day_$(date +\%Y\%m\%d).bak
# disconnect БД
psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() AND datname = 'vote-test';"
# удаление и создание БД
dropdb vote-test
psql -c 'create database "vote-test";'
psql -c 'ALTER DATABASE "vote-test" OWNER TO mobnius;'
# восстановление резервной копии
psql -U postgres vote-test < $dir_folder/vote-dev-day_$(date +\%Y\%m\%d).bak
ls -1tr | head -n -7 | xargs -d '\n' rm -f --
echo "Завершено"

Print Friendly, PDF & Email

Добавить комментарий