Использование Python скриптов для обслуживания баз PostgreSQL
Описание скрипта для обслуживания баз PostgreSQL.
- Описание
- Подробнее
Описание
Вводные
- Сервера PostgreSQL с базами 1С на Ubuntu 20.04
- установленный rclone и настроенное подключение к внешнему хранилищу
- Желание автоматизировать рутинные операции
- Резервное копирование через pg_dump
- перенос на внешнее хранилище и управление границей хранения используя rclone
- уведомления о выполнении пакета на https://healthchecks.io/
- Перенос баз с сервера на сервер
- миграция
- разворачивание/обновление тестовых баз
- Резервное копирование через pg_dump
- Чтобы присутствовал логгер
- Чтобы корректно отрабатывало исключения
- Рабочий скрипт на bash, который запускается из под postgres на сервере c БД
Вариант решения
Написал скрипт на Python 3.8, он идет в стандартной поставке Ubuntu 20.04. Из плюсов написанный код достаточно просто понять и при необходимости поправить.
Использовал только стандартные библиотеки, чтобы можно было скопировать, добавить конфиг и запустить через cron например. Большинство команд это отдельные приложения поэтому запускаю их через subprocess (ссылка). Для переиспользования функции по работе с файлами выделил в отдельные файлы и подключаю в управляющие скрипты. Конфиг в формате JSON потому что он обрабатывается стандартной библиотекой.
С уважением отношусь к OneScript, но на данный момент удобнее писать на python. Обертки работы с сервером 1С пока нет, возможно буду использовать Odin (ссылка). Про то что бекап через pg_dump не самое лучшее решение знаю, до реплик, pg_wal и barman дорасту и напишу.
Создание резервной копии

После создания в локальную папку перемещает на внешнее хранилище и делает GET запрос при успешном выполнении пакета.

