Содержание

Скрипт архивирования всех баз postgresql на linux

Экспорт в PDF Преобразовать страницу в формат Open Document

Дата создания: 2024/05/12 08:27 (C) mihanik

Дано

Операционная система Linux с установленным PostgreSQL. В СУБД создано несколько баз.

Надо

Создать архивную копию каждой базы. Бекап каждой базы должен храниться в отдельном архивном файле.

Во время архивации старые архивные копии должны перезаписываться.

Решение

#!/bin/bash
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
 
BackupDir=/home/db_repository
PGPASSWORD=654321
 
# Создаём архивы баз PostgreSQL
for dbname in `echo "SELECT datname FROM pg_database;" | psql -U postgres | tail -n +3 | head -n -2 | egrep -v 'template0|template1|postgres'`; do
	# Удалим старый файл с архивом базы
	rm -f $BackupDir/$dbname.sql.gz
	echo Устаревший архив базы $dbname удалён.
 
	# Создаём архивную копию базы.
	pg_dump -U postgres $dbname | gzip > $BackupDir/$dbname.sql.gz
	echo Архив базы $dbname создан.
done;
 
unset PGPASSWORD

Здесь:

Ссылка на файл со скриптом: pg_backup.sh

Источники

⇑ Наверх ⇑

В моей WIKI постоянно ведётся какая-то работа со статьями.
Если у вас возникли вопросы или замечания,
можете их отправлять на почту support@mihanik.net