<a name="top"></a>

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

Экспорт в PDF

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

<a href='javascript:history.back();'><img src=/lib/exe/fetch.php/level_up.png height=35 width=50></a>

Дано

Операционная система 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

Источники

https://www.dmosk.ru/miniinstruktions.php?mini=postgresql-dump&ysclid=lw34p4o9w280894748

⇑ Наверх ⇑

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