{"id":15187399,"url":"https://github.com/smsoft-ru/pgdbdump","last_synced_at":"2026-02-05T05:02:27.925Z","repository":{"id":215827855,"uuid":"739864441","full_name":"smsoft-ru/pgdbdump","owner":"smsoft-ru","description":"Linux shell scripts for backup and restore full/incremental/differential dumps of postgres databases","archived":false,"fork":false,"pushed_at":"2024-01-08T18:30:21.000Z","size":298,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-11T20:39:50.039Z","etag":null,"topics":["backup","backup-solution","bash-script","database","database-management","dialog","differential-backups","incremental-backups","linux","pgsql","postgres","postgresql","postgresql-database","productivity"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smsoft-ru.png","metadata":{"files":{"readme":"README-ru.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-06T19:22:36.000Z","updated_at":"2024-01-08T01:27:02.000Z","dependencies_parsed_at":"2024-01-16T00:21:57.356Z","dependency_job_id":"1a10a747-0a76-458c-9c2a-feb4b4dafb02","html_url":"https://github.com/smsoft-ru/pgdbdump","commit_stats":{"total_commits":32,"total_committers":1,"mean_commits":32.0,"dds":0.0,"last_synced_commit":"da2041e32f7fbb10867ac8c51904f9df1dfedc13"},"previous_names":["smsoft-ru/pgdbdump"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/smsoft-ru/pgdbdump","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smsoft-ru%2Fpgdbdump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smsoft-ru%2Fpgdbdump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smsoft-ru%2Fpgdbdump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smsoft-ru%2Fpgdbdump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smsoft-ru","download_url":"https://codeload.github.com/smsoft-ru/pgdbdump/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smsoft-ru%2Fpgdbdump/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29113189,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T03:44:17.043Z","status":"ssl_error","status_checked_at":"2026-02-05T03:44:12.077Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","backup-solution","bash-script","database","database-management","dialog","differential-backups","incremental-backups","linux","pgsql","postgres","postgresql","postgresql-database","productivity"],"created_at":"2024-09-27T18:21:08.162Z","updated_at":"2026-02-05T05:02:27.905Z","avatar_url":"https://github.com/smsoft-ru.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"pgdbdump v1.0\r\n\r\nНабор сценариев оболочки Linux, предназначенный для создания полных, дифференциальных или инкрементных дампов баз данных postgres.\r\nЭтот набор скриптов также включает в себя интерактивный скрипт, основанный на dialog (который, в свою очередь, основан на ncurses)\r\nдля восстановления этих дампов.\r\n\r\n(C) 2024 Сергей Мерзликин sm@smsoft.ru\r\n\r\nРаспространяется под лицензией GNU General Public License v3.0.\r\n\r\npgdbdump.sh используется для создания дампов. При создании полного дампа он работает так:\r\n\r\n1. Он создает текстовый дамп базы данных в raw-формате во временном каталоге.\r\n2. Он создает rdiff-сигнатуру для созданного дампа и сохраняет (или заменяет, если существует) ее в каталоге резервных копий.\r\n3. Он сжимает дамп с помощью lrzip, pixz, xz или 7-zip (в зависимости от опций в конфигурационном файле и от размера дампа)\r\n   и сохраняет его в каталоге резервных копий. Временный несжатый дамп после этого удаляется. Информация о дате и типе дампа\r\n   содержится в имени файла сжатого дампа.\r\n\r\nПри создании дифференциального или инкрементного дампа он работает так:\r\n\r\n1. Он создает текстовый дамп базы данных в raw-формате во временном каталоге.\r\n2. Он создает дельта-файл rdiff во временном каталоге используя ранее сохраненную сигнатуру rdiff.\r\n3. Только при создании инкрементного дампа он создает rdiff-сигнатуру для созданного дампа и заменяет ее в каталоге резервных копий.\r\n4. Он сжимает дельта-файл rdiff вышеупомянутыми архиваторами и сохраняет его в каталоге резервных копий. Временный несжатый дамп\r\n   и дельта-файл после этого удаляются. Информация о дате и типе дампа содержится в имени сжатого дельта-файла.\r\n\r\nОсновным способом запуска pgdbdump.sh являются задания cron.\r\n\r\npgdbrestore.sh - это интерактивный (с возможностью неинтерактивного запуска) удобный скрипт, предназначенный для восстановления\r\nархивов базы данных postgres, созданных скриптом pgdbdump.sh, в новую или исходную базу данных. Также имеется возможность\r\nреконструировать текстовый дамп в raw-формате для последующего ручного восстановления (возможно, на другой машине).\r\nСкрипт распаковывает и комбинирует дифференциальные, инкрементные и полные дампы (с помощью rdiff), и  при помощи полученного\r\nполного дампа восстанавливает базу данных postgres. Диалоговые экраны скрипта позволяют выбрать базу данных для восстановления, дату\r\nархива, режим восстановления (в исходную базу данных, новую базу данных или сохранить полный дамп на диске) и некоторые другие опции.\r\n\r\nДиалоговые окна и сообщения журнала могут отображаться на разных национальных языках. В настоящее время поддерживаются английский\r\nи русский языки. Поддержка других языков может появиться в будущем.\r\n\r\nОба скрипта могут регистрировать свои действия и ошибки в systemd journal и syslog. Параметры командной строки и параметры\r\nконфигурации описаны в начале соответствующих файлов.\r\n\r\nЗависимости:\r\n\r\n - postgres (pg_dump, psql)\r\n - rdiff\r\n - lrzip\r\n - pixz\r\n - xz\r\n - 7-zip\r\n - bash\r\n - dialog\r\n - realpath\r\n - logger\r\n\r\nУтилиты сжатия требуются только те, которые настроены (для сжатия), и для которых соответствующие типы архивов присутствуют в каталоге\r\nрезервных копий (для распаковки). Если выбран тип сжатия \"auto\" (по умолчанию), то используются pixz и lrzip, если они установлены\r\n(рекомендуется), и xz в противном случае.\r\n\r\nБольшинство из вышеперечисленных зависимостей уже присутствуют в современных дистрибутивах Linux.\r\n\r\nУстановка:\r\n\r\n - Проверьте зависимости и установите недостающие, если необходимо\r\n - Скопируйте конфигурационные файлы в каталог /etc/pgdbdump\r\n - Скопируйте остальные файлы в любой каталог в файловой системе (все файлы должны быть вместе)\r\n - Измените права файлов, чтобы сделать исполняемыми: pgdbdump.sh, pgdbdump_diff.sh, pgdbdump_full.sh и pgdbrestore.sh\r\n - Настройте каталог резервных копий в конфигурационных файлах\r\n - Настройте задания cron для создания дампов на регулярной основе\r\n\r\nНесколько скриншотов работы скрипта pgdbrestore.sh:\r\n\r\nВыбор базы данных для восстановления\r\n\r\n![Экран выбора базы](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_selectdb.png)\r\n\r\nНастройка диапазона дат для поиска и отображения дампов\r\n\r\n![Экран выбора диапазона дат](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_daterange.png)\r\n\r\nПанель календаря появляется после активации экранной кнопки \"Изменить\" на предыдущем скриншоте\r\n\r\n![Экран выбора даты](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_calendar.png)\r\n\r\nЭтот экран позволяет выбрать конкретный дамп для восстановления\r\n\r\n![Экран выбора дампа](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_selectdump.png)\r\n\r\nВыбор режима восстановления\r\n\r\n![Экран выбора режима](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_mode.png)\r\n\r\nВыбран режим сохранения реконструированного дампа: выбор каталога для сохранения файла дампа\r\n\r\n![Экран выбора каталога](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_selectdir.png)\r\n\r\nВыбран режим восстановления в новую базу данных: задание имени новой базы данных\r\n\r\n![Экран ввода имени базы данных](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_newdb.png)\r\n\r\nПодтверждение создания новой базы данных\r\n\r\n![Экран подтверждения](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_confirm.png)\r\n\r\nПроцесс восстановления начался\r\n\r\n![Экран отображения хода процесса](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_progress.png)\r\n\r\nБаза данных успешно восстановлена\r\n\r\n![Экран завершения](https://github.com/smsoft-ru/pgdbdump/blob/main/screenshots/ru/pgdbrestore_completed.png)\r\n \r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmsoft-ru%2Fpgdbdump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmsoft-ru%2Fpgdbdump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmsoft-ru%2Fpgdbdump/lists"}