Бэкап в облако: Яндекс.Диск, Google Диск, S3, FTP, SFTP
Технические данные
- Опубликовано:
- 03.11.2026
- Версия:
- 0.9.5
- Установлено:
- Менее 50 раз
- Подходящие редакции:
- «Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес»
- Адаптивность:
- Нет
- Поддержка Композита:
- Нет
- Совместимо с Сайты24
- Нет
Пользовательское соглашение
Описание
Модуль автоматически отправляет штатные резервные копии 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: «ключ сервера не совпадает»Сервер предъявил не тот ключ, который модуль запомнил при первом подключении. Так бывает после переезда или переустановки сервера, но может означать и подмену. Передача остановлена до отправки пароля. Уточните у хостинга. Если смена ожидаемая, впишите новый отпечаток из сообщения в поле «Отпечаток ключа сервера».
- Установите модуль из Маркетплейса: «Marketplace → Установленные решения» или «Настройки → Модули».
- При установке модуль проверит версию PHP и главного модуля, кодировку, расширения PHP и права на запись в /bitrix/php_interface, где хранится ключ шифрования. Если чего-то не хватает, установщик скажет, что именно.
- После установки появится раздел «Сервисы → Бэкап в облако»: Обзор, Хранилища, Резервные копии, История операций, Настройки.
Быстрая настройка
- Включите резервное копирование Битрикса («Настройки → Инструменты → Резервное копирование»). Лучше автоматическое по расписанию: о каждой готовой автоматической копии ядро сообщает модулю, и копия уходит сразу.
- Подключите хранилище: «Сервисы → Бэкап в облако → Хранилища → Подключить хранилище». Как подключить каждое хранилище, описано ниже. После сохранения нажмите в списке хранилищ «Проверить соединение»: модуль запишет пробный файл, проверит его и удалит.
- Настройте cron (рекомендуется): в настройках модуля выберите «Cron сервера» и добавьте показанную там команду в планировщик хостинга с запуском раз в минуту. Без cron модуль работает через агенты Битрикса короткими шагами, но Яндекс.Диск принимает копии только через cron.
- Задайте правила хранения в настройках каждого хранилища, например: последние 7 копий и по одной за каждую из последних 4 недель. Пока правила не заданы, модуль ничего не удаляет, и хранилище со временем заполнится.
- По желанию включите «Удалять копию с сайта после передачи» на вкладке настроек «Копии на сайте», чтобы копии не занимали место на хостинге.
Важно: облако «1С-Битрикс»
Если копии сохраняются ещё и в облако «1С-Битрикс», в настройках резервного копирования Битрикса не ставьте галочку «Удалять локальные резервные копии после успешной передачи в облако». Иначе Битрикс удалит файл раньше, чем модуль успеет передать его в ваши хранилища. Чтобы копия не занимала место на сайте, включите в модуле «Удалять копию с сайта после передачи». Тогда копия удалится, когда её примут все хранилища модуля.
Подключение Яндекс.ДискаНужно один раз создать в Яндексе своё приложение (около 5 минут). Лучше завести для копий отдельный аккаунт Яндекса.
- Откройте oauth.yandex.ru под аккаунтом, на Диск которого будут сохраняться копии, и нажмите «Создать приложение».
- Тип — «Для доступа к API или отладки». Название — например, «Резервные копии site.ru»: так будет называться папка с копиями на Диске.
- В разделе «Яндекс.Диск REST API» отметьте права «Доступ к папке приложения на Диске» (cloud_api:disk.app_folder) и «Доступ к информации о Диске» (cloud_api:disk.info). Другие права не нужны: модуль видит только свою папку и не может прочитать или удалить остальные файлы на Диске.
- Сохраните приложение и скопируйте ClientID и Client secret.
- В модуле: «Подключить хранилище → Яндекс.Диск», вставьте ClientID и Client secret, нажмите «Сохранить».
- Нажмите «Получить код в Яндексе», проверьте, что открыт нужный аккаунт, и нажмите «Разрешить». Вставьте код подтверждения в модуль и нажмите «Подключить». Код действует несколько минут.
Копии лежат на Диске в папке Приложения → название вашего приложения. Модуль удаляет старые копии мимо корзины. Яндекс принимает каждый файл одним запросом, поэтому копии на Диск передаются только через cron. Не задавайте в настройках резервного копирования Битрикса размер файла архива больше 1 ГБ. Скорость приёма у Яндекса бывает около 150–200 КБ/с: копия на 600 МБ может передаваться около часа.
Если что-то не получилось:
- «Код недействителен» или «код истёк» — получите новый код и сразу вставьте его.
- Модуль пишет, что нет прав, — в приложении не отмечено право «Доступ к папке приложения на Диске». Отметьте его и подключите Диск заново.
- Копии оказались не на том Диске — при подключении был открыт другой аккаунт. Выйдите из него на yandex.ru и подключите заново.
- «Авторизация истекла» — доступ отозван или сменён пароль аккаунта. Подключите Диск заново.
Подключение Google Диска
Нужно один раз создать в Google Cloud своё приложение (10–15 минут, бесплатно).
- Откройте console.cloud.google.com под нужным аккаунтом и создайте проект с названием латиницей, например Site Backup.
- «API и сервисы → Библиотека»: найдите Google Drive API и нажмите «Включить».
- «Экран согласия OAuth» (Google Auth Platform) → «Начать»: название приложения латиницей, ваша почта, аудитория «Внешние».
- «Доступ к данным → Добавить или удалить области»: отметьте только https://www.googleapis.com/auth/drive.file. С этой областью модуль видит только созданные им файлы.
- «Брендинг»: заполните все поля, кроме логотипа. Нужны главная страница сайта, ссылка на политику конфиденциальности, ссылка на условия использования (все на одном домене) и этот домен в «Авторизованных доменах». Логотип не загружайте: с ним Google требует проверку приложения.
- «Аудитория» → «Опубликовать приложение». Статус должен стать «В рабочей среде». Пока приложение в статусе «Тестирование», Google отзывает доступ через 7 дней.
- «Клиенты → Создать клиента», тип «Телевизоры и устройства с ограниченным вводом». Скопируйте Client ID и Client secret.
- В модуле: «Подключить хранилище → Google Диск», вставьте Client ID и Client secret, нажмите «Сохранить».
- Нажмите «Получить код». Откройте ссылку google.com/device, войдите в нужный аккаунт, введите код и разрешите доступ. Вернитесь в модуль и нажмите «Я ввёл код — подключить».
Копии лежат в разделе «Мой диск», в папке, которую создаёт модуль. Не создавайте её вручную: модуль видит только свои файлы и создаст рядом папку с тем же именем.
Если что-то не получилось:
- «To publish your app, you must complete your configuration on the Branding page» — в «Брендинге» заполнены не все поля.
- «Это приложение не проверено» — нажмите «Дополнительно → Перейти на страницу…»: это ваше собственное приложение.
- Через неделю «Авторизация истекла» — приложение осталось в статусе «Тестирование». Опубликуйте его и подключите Диск заново.
- «invalid_client» — скопируйте Client ID и Client secret ещё раз, проверьте тип клиента.
- «Google Drive API has not been used in project…» — не включён Google Drive API.
Подключение S3-хранилища
Подходит любое хранилище с протоколом S3: Beget, Yandex Object Storage, Selectel, VK Cloud, Timeweb Cloud, Amazon S3, MinIO и другие.
- В панели хранилища создайте приватный бакет и ключ доступа (Access key и Secret key) с правами на чтение, запись и удаление в этом бакете.
- В модуле: «Подключить хранилище → S3-совместимое хранилище».
- Адрес (endpoint) — только https:// и без имени бакета, например https://s3.ru1.storage.beget.cloud или https://storage.yandexcloud.net.
- Бакет, Access key, Secret key.
- Регион — для Amazon S3 регион бакета, для Yandex Object Storage ru-central1. Большинство других хранилищ принимают любой регион: оставьте us-east-1.
- «Адрес вида endpoint/бакет» оставьте включённым, если хранилище не требует иного.
Тома загружаются частями по 8 МБ с проверкой MD5 каждой части. Прерванная загрузка продолжается с той части, на которой остановилась. Рекомендуем добавить в бакете правило жизненного цикла «удалять незавершённые загрузки по частям через 7 дней», если хранилище его поддерживает.
Подключение FTP, FTPS и SFTPSFTP (по SSH) — лучший вариант, если на сервере есть SSH. FTPS (FTP с TLS) — если SSH нет. Обычный FTP передаёт пароль и архив открытым текстом: используйте его, только если другого нет.
SFTP:
- «Подключить хранилище → SFTP (SSH)»: сервер без sftp://, порт (обычно 22), логин и пароль пользователя, которому разрешён вход по SSH. На многих хостингах дополнительные FTP-пользователи по SFTP войти не могут.
- Каталог считается от домашнего каталога пользователя и создаётся автоматически.
- Поле «Отпечаток ключа сервера» можно оставить пустым: при первом подключении модуль запомнит отпечаток и покажет его. Если ключ сервера потом сменится, передача остановится до отправки пароля. При законной смене ключа (переезд сервера) впишите в это поле новый отпечаток из сообщения об ошибке.
- Нужен PHP 8.2 или новее и curl с поддержкой SFTP. Если их нет, модуль скажет об этом при сохранении хранилища.
FTP и FTPS:
- «Подключить хранилище → FTP / FTPS»: сервер без ftp://, порт (обычно 21, в том числе для FTPS), логин и пароль.
- Шифрование — оставьте FTPS. Поддерживается явный TLS на обычном порту. Неявный FTPS на порту 990 не поддерживается.
- «Проверять сертификат сервера» — не выключайте без необходимости. Сертификат должен быть выдан на то имя сервера, которое вы указали. Пассивный режим оставьте включённым.
У FTP и SFTP нет команды контрольной суммы, поэтому передача проверяется по размеру. Полную проверку даёт файл .sha256 рядом с копией. Если сервер отклоняет логин, не проверяйте соединение много раз подряд: хостинг может на время заблокировать IP сайта.
Настройки модуля«Сервисы → Бэкап в облако → Настройки».
- Основные: модуль включён; запуск обработчика очереди — агент Битрикса или cron сервера (рекомендуется, команда показана здесь же).
- Очередь:
- число попыток передачи (по умолчанию 6);
- пауза перед повторной попыткой (120 с, каждая следующая вдвое длиннее, максимум 6 часов);
- время работы агента и cron за один запуск;
- таймаут сетевых операций;
- через сколько минут неизменности файлов считать готовой копию, созданную вручную (10 мин);
- передавать ли такие копии автоматически;
- сколько дней хранить журнал (90).
- число попыток передачи (по умолчанию 6);
- Проверка: размер и контрольная сумма (по умолчанию) или только размер — меньше нагружает сервер, но без файла .sha256.
- Копии на сайте: удалять копию с сайта после передачи (выключено), сколько последних копий всегда оставлять на сайте (1).
- Доступ: права групп пользователей — просмотр или управление. Подключать и удалять хранилища может только администратор сайта.
В форме каждого хранилища:
- Каталог — свой для каждого сайта, по умолчанию bitrix-backup/<домен>. Два хранилища не могут указывать в одну папку.
- Какие копии передавать: каждую новую, не чаще раза в сутки или не чаще раза в неделю.
- Правила хранения:
- последние N копий;
- по одной за день, неделю, месяц;
- копии моложе N дней;
- не больше N ГБ;
- не меньше N копий.
- последние N копий;
- Освобождать место для новой копии: при нехватке места модуль удалит самую старую копию, которую разрешают удалить правила, и повторит передачу.
Восстановление сайта
- На этом же сайте: «Резервные копии» → копия → «Как восстановить». Если копии на сервере нет, нажмите «Вернуть копию на сервер из …»: модуль скачает её в /bitrix/backup/ и проверит каждый том. Затем восстановите её штатно: «Настройки → Инструменты → Резервное копирование → Список резервных копий» → меню копии → «Восстановить».
- На новом сервере: на той же странице есть пошаговая инструкция. Для FTP, SFTP и S3 в ней есть команда, которая скачивает все тома одной строкой. Проверьте тома командой sha256sum -c, скачайте restore.php и восстановите сайт. После восстановления удалите restore.php и файлы архива.
- Восстановили сайт из старой копии: модуль раз в сутки или по кнопке «Сверить с хранилищами» найдёт в хранилищах более новые копии этого сайта и вернёт их в список.
Советы
- Задайте в настройках резервного копирования Битрикса размер одного файла архива 100–1000 МБ. Тогда большая копия разобьётся на тома, которые проще передать и проверить.
- Время от времени проверяйте копию пробным восстановлением на отдельном сервере: только оно доказывает, что из архива можно восстановить сайт.
Удаление
При удалении модуль спросит, сохранить ли его данные: хранилища, список копий и журнал. Если сохранить, после повторной установки всё вернётся. Копии в хранилищах и в /bitrix/backup/ модуль при удалении не трогает.
Техническая поддержка решений: индивидуальный предприниматель Бороздин Алексей Григорьевич.
Как обратиться- Telegram: @axelnsk
- Телефон: +7 (913) 740-55-25
- E-mail: axelnsk@mail.ru
- Сайт: https://bitrix-help.ru/
- Раздел «Обсуждения» на странице решения в Маркетплейсе
Понедельник — пятница, с 10:00 до 19:00 по новосибирскому времени (МСК+4). Суббота, воскресенье и праздничные дни — выходные.
Сроки ответаПервый ответ — в течение одного рабочего дня с момента обращения. Срок решения зависит от сложности вопроса, о нём сообщаем в первом ответе.
Что входит в поддержку- Консультации по установке, настройке и работе решения.
- Исправление ошибок в работе решения.
- адрес сайта и название решения;
- версию решения и версию «1С-Битрикс» (раздел «Настройки → Настройки продукта → Модули»);
- описание проблемы и шаги, как её повторить, текст ошибки со страницы, по возможности — скриншот.
Если для диагностики нужен доступ к сайту, мы запросим его отдельно.