{"id":21141273,"url":"https://github.com/iwizard7/rabbitmq_backup_script","last_synced_at":"2026-04-15T16:31:42.962Z","repository":{"id":205040617,"uuid":"713266031","full_name":"iwizard7/rabbitmq_backup_script","owner":"iwizard7","description":"This Bash script is designed to back up RabbitMQ configuration and data.","archived":false,"fork":false,"pushed_at":"2024-07-11T09:25:36.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-03T14:49:34.753Z","etag":null,"topics":["backup","bash-script","rabbitmq"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iwizard7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-02T07:06:37.000Z","updated_at":"2024-08-29T09:23:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"7f05a350-f98b-4aec-912c-a0fa99b399d8","html_url":"https://github.com/iwizard7/rabbitmq_backup_script","commit_stats":null,"previous_names":["iwizard7/rabbitmq_backup_script"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iwizard7/rabbitmq_backup_script","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Frabbitmq_backup_script","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Frabbitmq_backup_script/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Frabbitmq_backup_script/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Frabbitmq_backup_script/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iwizard7","download_url":"https://codeload.github.com/iwizard7/rabbitmq_backup_script/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwizard7%2Frabbitmq_backup_script/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278648904,"owners_count":26021992,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","bash-script","rabbitmq"],"created_at":"2024-11-20T07:26:27.742Z","updated_at":"2025-10-06T17:32:25.269Z","avatar_url":"https://github.com/iwizard7.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Скрипт резервного копирования для RabbitMQ ⚙️\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/iwizard7/rabbitmq_backup_script)\n\nЭтот скрипт Bash предназначен для создания резервных копий данных RabbitMQ и сохранения их в Git-репозиторий. Вот как он работает:\n\n## Параметры\n\nВ начале скрипта определены несколько параметров, которые можно настроить в соответствии с вашими потребностями:\n\n- `GIT_REPO_PATH`: Путь к локальному Git-репозиторию, где будут храниться резервные копии.\n- `GIT_REPO_FULL_PATH`: Полный путь к папке в Git-репозитории, где будут сохраняться резервные копии для конкретного кластера RabbitMQ.\n- `RABBITMQ_CFG_PATH`: Путь к конфигурационному файлу `rabbitmq.config` на вашей системе.\n- `TMP_PATH`: Временная папка, где будут создаваться временные файлы и архивы.\n- `MNESIA_COPY`: Флаг, указывающий, нужно ли копировать папку `mnesia`. Если установлено значение `true`, скрипт остановит сервис RabbitMQ, создаст архив `mnesia` и затем снова запустит сервис.\n- `MNESIA_DIR`: Путь к папке `mnesia` в RabbitMQ.\n\n## Копирование папки `mnesia`\n\nЕсли переменная `MNESIA_COPY` установлена в значение `true`, скрипт выполнит следующие действия:\n\n1. Остановит сервис RabbitMQ с помощью команды `rabbitmqctl stop_app`.\n2. Создаст архив `zip` из папки `mnesia` с использованием команды `zip`.\n3. Запустит сервис RabbitMQ снова с помощью команды `rabbitmqctl start_app`.\n\nЕсли переменная `MNESIA_COPY` установлена в значение `false`, этот шаг будет пропущен.\n\n## Проверка наличия папок\n\nСледующий блок кода проверяет наличие папок `/opt/git` и `/opt/tmp` и создает их, если они отсутствуют.\n\n## Выгрузка бэкапа с помощью `rabbitmqadmin`\n\nСкрипт использует утилиту `rabbitmqadmin` для выгрузки схемы данных RabbitMQ в формате JSON. Выгрузка происходит с использованием команды `rabbitmqadmin export`, и результат сохраняется в файл `schema_$(hostname -s).json` во временной папке.\n\n## Копирование конфигурационного файла\n\nСкрипт копирует файл `rabbitmq.config` из указанного пути `RABBITMQ_CFG_PATH` во временную папку. Имя файла будет иметь формат `rabbitmq_$(hostname -s).config`, где `$(hostname -s)` - это имя текущей ноды.\n\n## Создание архива\n\nСкрипт создает архив `zip` с помощью команды `zip -r -P ****** $(hostname -s).zip *` во временной папке. Архив будет защищен паролем `******`, и его имя будет иметь формат `$(hostname -s).zip`, где `$(hostname -s)` - это имя текущей ноды.\n\n## Перемещение архива в Git-репозиторий\n\nСкрипт перемещает созданный архив в папку `GIT_REPO_FULL_PATH` в локальном Git-репозитории.\n\n## Удаление временных файлов\n\nСкрипт удаляет временные файлы `rabbitmq_$(hostname -s).config` и `schema_$(hostname -s).json` из временной папки.\n\n## Добавление и коммит в Git\n\nСкрипт выполняет команды `git add --all` и `git commit -m \"Добавлен бэкап cluster_name нода nodename\"` для добавления и коммита изменений в Git-репозиторий.\n\n## Отправка в удаленный Git-репозиторий\n\nСкрипт отправляет изменения в удаленный Git-репозиторий с помощью команды `git push origin master`.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiwizard7%2Frabbitmq_backup_script","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiwizard7%2Frabbitmq_backup_script","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiwizard7%2Frabbitmq_backup_script/lists"}