МихаНическая Wiki!

Скрипт архивирования всех баз 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

Здесь:

  • BackupDir - каталог где будут храниться архивные копии
  • PGPASSWORD - пароль пользователя postgres (значение «654321» установлено в качестве примера).

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

Источники

⇑ Наверх ⇑

В моей WIKI постоянно ведётся какая-то работа со статьями.
Если у вас возникли вопросы или замечания,
можете их отправлять на почту support@mihanik.net
Только авторизованные участники могут оставлять комментарии.
субд/postgresql/скрипт_архивирования_всех_баз_postgresql_на_linux.txt · Последнее изменение: 2024/05/12 08:55 — mihanik
Яндекс.Метрика