Набор python-скриптов, позволяющих автоматизировать процесс создания резервных копий:
- файлы (папки)
- базы данных MySQL
- репозитории на github
Скрипт можно добавить в планировщик заданий для автоматического выполнения резервного копирования.
- Python: для работы скриптов
- git: для резервного копирования репозиториев
- mysql: СУБД и создание дампов
- 7zip: создание архивов
Используются дополнительные модули Python:
- humanize: приведение размеров файлов в человекочитаемый формат
- send2trash: удаление файлов, т.к. через shutil не удавалось удалить
- rocketchat_API: для отправки уведомлений в Rocket.Chat
- python-telegram-bot: для отправки уведомлений в Телеграм
Модули можно установить через консоль:
pip install humanize
и т.д.
Для использования необходимо выполнить настройку через файл config.json
- machineName - имя компьютера, на котором выполняется резервное копирование. Используется для пути к бэкапам
- backupFolder - путь к папке, в которой будут создаваться резервные копии
- files - массив объектов, которые содержат:
- path - папка, для которой необходимо создать бэкап
- alias - псевдоним, используется для пути к бэкапам
- mysql - массив оъектов:
- alias - псевдоним экземпляра mysql, используется для пути к бэкапам
- auth.user - пользователь БД
- auth.pass - пароль пользователя
- dbs - массив имен баз данных
- paths - пути
- sevenzip - к 7z.exe
- mysqldump - к mysqldump.exe
- gitExt - к git.exe
- git - настройки резеврного копирования репозиториев
- repositories - массив объектов:
- owner - владелец репозитория
- name - имя репозитория
- user - пользователь
- token - токен (Fine-grained personal access token, получить можно здесь: https://github.com/settings/tokens?type=beta)
- repositories - массив объектов:
- rocketChat -настройка уведомлений в Rocket.Chat
- enable - true/false, включено/выключено
- server - сервер rocket.chat
- user - пользователь, от имени коготорого будут отправляться сообщения
- pass - пароль пользователя
- channel - канал (чат), в который будут отправляться уведомления
- telegram - настройка уведомлений в ТГ
- enable - включено/выключено
- token - api-токен бота, который будет отправлять сообщения
- chatId - id чата, в который будет отправляться сообщение