Плагин для резервного копирования

Делитесь своими плагинами и темами оформления.
Ответить
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1196
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич
Контактная информация:

Плагин для резервного копирования

Сообщение Fait »

Коллеги, в свете последних событий (бомбили дата-центры) у некоторых моих клиентов возникла острая потребность делать резервные копии своих систем. А так как штатный способ предполагает хранение только на том же сервере, он перестал соответствовать ожиданиям.

И вот, пришлось быстро сделать такой вот плагин, который закрывает эту задачу наилучшим образом.
И ваши файлы с моим плагином будут в безопасности.

Дальше - описание сделал через ИИ, потому что так быстрее :D

База данных и файлы сайта уходят по расписанию - по вашим правилам

Резервное копирование - плагин для Руководителя, который сам снимает копию базы MySQL/MariaDB и выбранных папок сайта. Архивы ложатся туда, куда вы укажете: Яндекс.Диск, Google Диск, SFTP, FTP, S3, WebDAV или папка на сервере. Если копирование не удалось, запись появляется в журнале, а выбранные сотрудники получают письмо. При установленном Мультимессенджере - ещё и сообщение в выбранные каналы.
Для владельца системы. Обновление, сбой диска или случайно удалённая таблица больше не означают потерю работы компании. Копия уже лежит вне сервера, а вернуть можно отдельные таблицы и папки.
Что закрывает плагин
  • Копия по расписанию. У базы своё расписание, у файлов - своё.
  • Копия перед обновлением. Одна кнопка - и свежий снимок перед установкой плагина или правкой структуры.
  • Точечное восстановление. Отдельные таблицы и папки, без отката всей системы.
  • Мало места на сервере. Файлы можно отправлять по одному, без второго архива на десятки гигабайт.
Возможности
  • Несколько заданий. Ночная копия всей базы, еженедельный архив файлов и отдельная выгрузка перед релизом - у каждого задания свои получатели.
  • Выбор, что сохранять. Нужные таблицы и папки. Новые таблицы можно включать автоматически. Представления, процедуры, функции, триггеры и события сохраняются отдельно.
  • Куда угодно. Яндекс.Диск, Google Диск, SFTP, FTP/FTPS, S3-совместимое хранилище, WebDAV и каталог на сервере.
  • Фоновый процесс. Большая копия идёт отдельным процессом и не обрывается по лимиту времени PHP. В журнале виден прогресс, запуск можно отменить.
  • Место на диске. Файлы сайта уходят по одному. База пишется частями: готовая часть отправляется получателю и освобождает диск.
  • Хранение без ручной уборки. Задаёте, сколько последних копий базы и файлов держать. Старые снимки удаляются сами.
  • Журнал и скачивание. Дата, статус и список файлов. Можно скачать один архив или всё сразу. Если часть файлов недоступна, плагин покажет какие и даст забрать остальные.
Почему это удобно
  • Копия снимается из интерфейса системы, без отдельного mysqldump и без доступа по SSH.
  • Расписание из пяти полей cron и готовые кнопки: каждый час, каждый день, каждую неделю, каждый месяц.
  • Права разделены: настройки, ручной запуск, скачивание и восстановление можно выдать разным группам.
  • Для InnoDB снимается согласованный снимок, чтобы копия не разъехалась по таблицам в середине записи.
  • Структура, данные и объекты базы лежат отдельно. Большой дамп делится на части заданного размера.
Куда уходят копии
  • Яндекс.Диск - авторизация кодом подтверждения.
  • Google Диск - свои Client ID и Refresh token, доступ обновляется сам.
  • SFTP и FTP - ключ или пароль, для SFTP проверяется отпечаток сервера.
  • S3 и WebDAV - облако и корпоративные хранилища.
  • Папка на сервере - копия на другой диск того же сервера. Для защиты от аварии самого сервера лучше внешний диск или SFTP.
Копия, которая уже есть, когда она понадобилась
Подключите диск, отметьте таблицы и папки, поставьте расписание - и перестаньте держать в голове, когда в последний раз выгружали базу вручную.

Подробнее о плагине:
https://helper.erpformula.ru/public/pag ... MYWO0sRX-k

Скриншоты интерфейса:
Screenshot_20261012_133906.jpg
Screenshot_20261012_134037.jpg
Screenshot_20261012_134124.jpg
Screenshot_20261012_134209.jpg
Screenshot_20261012_134340.jpg
Screenshot_20261012_134431.jpg
Ответить