No description
- Shell 100%
| .env.example | ||
| .gitignore | ||
| Readme.md | ||
| script.bash | ||
Git Mirror Backup Tool
Скрипт для автоматического зеркалирования и резервного копирования всех репозиториев из GitHub и GitLab.
Основные возможности
- Автоматический сбор: Получает списки всех доступных репозиториев через API (GitHub CLI и GitLab API).
- Зеркалирование: Использует режим
--mirror, сохраняя все ветки, теги и историю коммитов. - Структурирование: Организует репозитории по папкам:
платформа/владелец/репозиторий.git. - Безопасность: Все архивы шифруются алгоритмом AES256 с помощью GPG.
- Облачное хранение: Автоматическая синхронизация зашифрованных архивов с удаленным FTP-сервером.
- Статистика: Ведение лога каждой операции в файл
backup.log.
Требования
Для работы скрипта должны быть установлены:
gh(GitHub CLI)jq(обработка JSON)lftp(синхронизация с FTP)gitgpg(шифрование)
Настройка
-
Скопируйте
.env.example -> .envв корне проекта и установите значение переменных. -
Настройте права доступа к скрипту:
chmod +x script.bash
Использование
Запуск бэкапа:
./script.bash
или
zsh script.bash
Восстановление данных
1. Расшифровка архива
Для расшифровки и распаковки группы репозиториев используйте команду:
gpg --batch --passphrase "ваш_пароль" -d backup.tar.gz.gpg | tar -xz
2. Восстановление исходного кода
Так как бэкап хранится в формате --mirror (чистая база Git), для получения файлов проекта выполните обычный клон из локальной папки:
git clone /путь/к/бэкапу/repo.git /путь/к/восстановленному/проекту
После этого в папке проекта появятся все файлы. Все ветки также будут доступны через git checkout <имя_ветки>.
Логирование
Результаты работы записываются в ./backup.log