Бэкап в облако: Яндекс.Диск, Google Диск, S3, FTP, SFTP
Бэкап в облако: Яндекс.Диск, Google Диск, S3, FTP, SFTP
Модуль автоматически отправляет штатные резервные копии 1С-Битрикс в ваши хранилища: Яндекс.Диск, Google Диск, S3-совместимые хранилища, FTP/FTPS и SFTP. Каждую передачу модуль проверяет. Старые копии удаляются по вашим правилам, а любую копию можно вернуть на сервер одной кнопкой.
Копия, которая лежит только на том же хостинге, что и сайт, пропадёт вместе с ним: при сбое диска, взломе, блокировке аккаунта или ошибке хостера. Модуль хранит копии в других местах и следит, чтобы они действительно туда дошли.
Как это работает- Вы настраиваете резервное копирование Битрикса как обычно: автоматическое по расписанию или ручное.
- Модуль замечает новую копию. Об автоматическом бэкапе ему сообщает ядро Битрикса, а ручную копию он берёт, когда её файлы перестают меняться.
- Копия ставится в очередь и передаётся во все подключённые хранилища. При обрыве связи передача продолжается с того места, где остановилась.
- После передачи модуль сверяет каждый том с оригиналом, удаляет старые копии по правилам хранения и, если вы это включили, освобождает место на сайте.
Хранилища
- Яндекс.Диск: доступ только к папке приложения.
- Google Диск: доступ только к файлам, которые создал модуль.
- S3-совместимые хранилища: Beget, Yandex Object Storage, Selectel, VK Cloud, Timeweb Cloud, Amazon S3, MinIO и другие.
- FTP / FTPS с проверкой сертификата.
- SFTP (SSH) с проверкой ключа сервера.
Можно подключить несколько хранилищ сразу, в том числе разных типов. При запуске через cron хранилища принимают копии параллельно, и медленное хранилище не задерживает остальные.
Проверка доставки- Каждый том сверяется с оригиналом. В Яндекс.Диске и Google Диске сверяется контрольная сумма SHA-256 или MD5, в S3 — MD5 каждой части и итоговая сумма. Для FTP и SFTP, где сервер не сообщает контрольных сумм, сверяется размер.
- Рядом с копией модуль кладёт файл .sha256. По нему целостность скачанной копии можно проверить командой sha256sum -c даже без исходного сайта.
- Тома загружаются под временным именем и переименовываются, только когда дошли целиком. Под настоящим именем в хранилище никогда не лежит недописанный файл.
Надёжная очередь
- Модуль повторяет неудачные передачи с нарастающей паузой. Если ошибка в авторизации или не хватает места, пауза не меньше часа, чтобы не долбить сервис.
- Большие копии передаются частями с докачкой. Google Диск, S3, FTP и SFTP работают и через агенты Битрикса. Через cron передача быстрее, и он рекомендуется.
- Если хранилище не успевает принимать копии, модуль предупредит. Новая копия заменит в очереди более старые, которые ещё не начали передаваться.
- Всё, что делает модуль, записывается в «Историю операций»: что передано, куда, как проверено и почему произошла ошибка.
Правила хранения
- Для каждого хранилища можно задать, какие копии хранить:
- последние N копий;
- по одной копии за день, неделю или месяц;
- копии моложе N дней;
- не больше N ГБ всего;
- не меньше N копий при любых правилах.
- последние N копий;
- Правила считаются отдельно для полных копий и для копий только базы данных. Частые копии базы не вытеснят полные.
- Важную копию можно закрепить, и её не удалит ни одно правило. Самая свежая проверенная копия каждого вида тоже не удаляется никогда.
- Включите «Освобождать место», и при переполнении хранилища модуль сам удалит самую старую копию, которую разрешают удалить правила, и повторит передачу.
- Можно передавать в хранилище каждую копию, не чаще раза в сутки или не чаще раза в неделю. Например, ежечасные копии оставлять на быстром S3, а на Диск отправлять одну копию в сутки.
Место на хостинге
Если включить эту настройку, копия удаляется с сайта после того, как все хранилища её приняли и проверили. Перед удалением модуль ещё раз находит её файлы в хранилище. Можно оставлять на сайте несколько последних копий, чтобы быстро восстановиться.
Восстановление- Вернуть копию на сервер можно одной кнопкой. Модуль скачает её из хранилища в /bitrix/backup/, проверит каждый том, и копия появится в списке резервных копий Битрикса для штатного восстановления.
- Для восстановления на новом сервере у каждой копии есть пошаговая инструкция. Для FTP, SFTP и S3 в ней есть команда, которая скачивает все тома одной строкой.
- Сайт восстановили из старой копии или перенесли на чистый сервер? Модуль сам найдёт в хранилищах копии этого сайта по «паспорту» копии и вернёт их в список. Копии других сайтов в той же папке он не трогает.
Безопасность
- Пароли, ключи и токены хранятся в базе зашифрованными (AES-256-GCM). Ключ шифрования лежит в отдельном файле, а не в базе. В журнале секреты скрываются.
- Модуль получает от облачных дисков минимальный доступ: прочитать или удалить ваши остальные файлы на Диске он не может.
- FTPS по умолчанию проверяет сертификат сервера. SFTP запоминает ключ сервера и останавливает передачу, если ключ сменился, чтобы пароль не попал на подменённый сервер.
- Модуль удаляет только файлы, которые загрузил сам. Два хранилища в одну папку подключить нельзя.
- Все действия в админке защищены проверкой сессии и прав. Подключать и удалять хранилища может только администратор сайта.
- Поддерживаются зашифрованные копии Битрикса: модуль передаёт их как есть, пароль от архива ему не нужен.
Чего модуль не делает
- Модуль не создаёт копии сам: их создаёт штатное резервное копирование Битрикса («Настройки → Инструменты → Резервное копирование»).
- Модуль не восстанавливает сайт сам: восстанавливает штатный restore.php. Модуль возвращает копию на сервер и даёт пошаговую инструкцию.
- Отметка «передана» означает, что файлы дошли до хранилища целиком и без изменений. Исправность самого архива проверяется при его создании (опция Битрикса «Проверить целостность архива») и пробным восстановлением.
Требования
- PHP 8.2 или новее, главный модуль 24.0 или новее, кодировка UTF-8, MySQL.
- Расширения PHP: curl, openssl (с AES-256-GCM), json, hash.
- Для SFTP нужен curl с поддержкой SFTP (libssh2). Есть на большинстве хостингов, модуль проверит это сам.
- Рекомендуется cron. Для Яндекс.Диска он обязателен: Яндекс принимает файл одним запросом, без докачки.
Нет. Копии создаёт штатное резервное копирование Битрикса («Настройки → Инструменты → Резервное копирование»), автоматическое или ручное. Модуль берёт готовые копии и передаёт их в хранилища.
Нужен ли cron?Рекомендуется. Без cron модуль работает через агенты Битрикса короткими шагами: так работают Google Диск, S3, FTP и SFTP. Яндекс.Диск принимает каждый файл одним запросом, без докачки, поэтому копии на него передаются только из cron. Команда для cron показана в настройках модуля.
Копия «создана вручную» долго не передаётся. Почему?Битрикс не сообщает модулю, когда закончился ручной бэкап. Поэтому модуль ждёт, пока файлы копии перестанут меняться (по умолчанию 10 минут). Если вы точно знаете, что создание копии завершено, нажмите «Копия завершена — взять сейчас» на странице «Резервные копии». Автоматические копии ядро подтверждает само, и они передаются сразу.
Что значит «передана» и «проверено по размеру»?«Передана» — файлы дошли до хранилища целиком и совпали с оригиналом. Яндекс.Диск, Google Диск и S3 сообщают контрольную сумму файла, и модуль сверяет её. FTP и SFTP контрольную сумму не сообщают, поэтому там сверяется размер. Полную проверку в любом хранилище даёт файл .sha256 рядом с копией.
Можно ли удалять копии с хостинга после передачи?Да. Включите «Удалять копию с сайта после передачи». Копия удалится, только когда её приняли и проверили все хранилища. Перед удалением модуль ещё раз находит её файлы в хранилище. Можно оставлять на сайте несколько последних копий.
Я сохраняю копии ещё и в облако «1С-Битрикс». Что важно знать?Не ставьте в настройках резервного копирования Битрикса галочку «Удалять локальные резервные копии после успешной передачи в облако»: Битрикс удалит файл раньше, чем модуль передаст его в ваши хранилища. Вместо неё включите удаление в модуле.
Хранилище заполнилось. Что будет?Передача остановится с ошибкой «не хватает места», и модуль будет повторять её с паузой не меньше часа. Чтобы этого не было, задайте правила хранения. Ещё можно включить «Освобождать место для новой копии»: тогда модуль сам удалит самую старую копию, которую разрешают удалить правила. Закреплённые копии и самую свежую копию каждого вида он не трогает никогда.
Копии на Яндекс.Диск передаются медленноЯндекс ограничивает скорость приёма файлов: с хостинга это бывает 150–200 КБ/с, так что копия на 600 МБ может передаваться около часа. Если копии делаются чаще, чем Диск успевает их принять, модуль предупредит и будет передавать самую свежую копию, а не очередь старых. Для частых копий удобно передавать на Диск одну копию в сутки (настройка хранилища «Какие копии передавать»), а остальные хранить на S3.
Как восстановить сайт?Откройте копию на странице «Резервные копии» → «Как восстановить». Если копии нет на сервере, верните её из хранилища кнопкой: она появится в списке Битрикса, откуда восстанавливается штатно. Для нового сервера на этой же странице есть пошаговая инструкция с командами скачивания.
Я восстановил сайт из старой копии. Модуль «забыл» новые копии?Нет. Модуль раз в сутки или по кнопке «Сверить с хранилищами» находит в хранилищах копии своего сайта по «паспорту» и возвращает их в список. Копии, которые уже есть в хранилище, повторно не загружаются.
Можно ли хранить копии нескольких сайтов в одном хранилище?Да, у каждого сайта должен быть свой каталог (по умолчанию bitrix-backup/<домен>). Модуль удаляет только файлы, которые загрузил сам, и не принимает чужие копии за свои.
Видит ли модуль мои остальные файлы на Яндекс.Диске или Google Диске?Нет. На Яндекс.Диске модулю доступна только папка приложения, на Google Диске — только файлы, которые он создал. Это ограничение самого Яндекса и Google, а не обещание модуля.
Где хранятся пароли и ключи от хранилищ?В базе сайта, в зашифрованном виде (AES-256-GCM). Ключ шифрования лежит в отдельном файле в /bitrix/php_interface. Если перенести только базу без этого файла, модуль попросит заново ввести пароли хранилищ.
Поддерживаются ли зашифрованные копии Битрикса?Да. Модуль передаёт их как есть. Пароль от архива ему не нужен и не известен: при восстановлении его вводят в restore.php.
SFTP: «ключ сервера не совпадает»Сервер предъявил не тот ключ, который модуль запомнил при первом подключении. Так бывает после переезда или переустановки сервера, но может означать и подмену. Передача остановлена до отправки пароля. Уточните у хостинга. Если смена ожидаемая, впишите новый отпечаток из сообщения в поле «Отпечаток ключа сервера».