{{description>Скрипт для архивирования всех баз PostgreSQL на Linux}} ====== Скрипт архивирования всех баз postgresql на linux ====== [[ http://wiki.mihanik.net/doku.php?id=субд:postgresql:скрипт_архивирования_всех_баз_postgresql_на_linux&do=export_pdf | Экспорт в PDF ]] ~~ODT~~ Дата создания: 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" установлено в качестве примера). Ссылка на файл со скриптом: {{ :субд:postgresql:pg_backup.sh |}} ===== Источники ===== * https://www.dmosk.ru/miniinstruktions.php?mini=postgresql-dump&ysclid=lw34p4o9w280894748 [[#top|⇑ Наверх ⇑]]