Ниже написан скрипт для автоматического создания копии БД с последующим восстановлением на тестовой среде.
#!/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 "Завершено"