Установка
Запрос решения по резервному копированию .NET Forge CMS
Для версий 1.0 и 2.0 решения по резервному копированию работает система регистрации предварительных заявок на получение скрипта.
На странице формы запроса решения необходимо заполнить 2 обязательных поля и 2 необязательных. Так же при необходимости следует указать необходимость предоставления отдельной расширенной технической поддержки решения.
Форма заполняется для каждого сайта на который предполагается установка решения.
В настоящий момент решение распространяется бесплатно в открытых кодах, однако мы настоятельно просим всех желающих использовать решение пройти данную процедуру, чтобы в дальнейшем использовать все преимущества автоматического обновления продукта.
Установка решения бекапирования
Для установки решения по резервному копированию необходимо установить на сайт пакет скриптов Coffeediz_NF_backup_v2. Содержимое пакета претерпело изменение по сравнению с версией 1 и в него входят:
- /bitrix/admin/backup/Default.aspx
- /bitrix/admin/backup/Backup.aspx.cs
- /bitrix/admin/backup/Web.config
- /bitrix/admin/backup/RestoreTool.rar
Примечание: файл Web.config не является обязательным для установки - он конфигурирует параметры сервера таким образом, чтобы уменьшить вероятность ошибки ожидания (502 TimeOut) на слабых серверах. Если у вас выделено достаточное количество ресурсов или вы самостоятельно умеете конфигурировать сервер, можете удалить предоставляемый конфигурационный файл.
Все скрипты находятся уже в соответствующих папках. Для установки решения необходимо распаковать архив и просто скопировать все папки в корень сайта (файлы будут скопированы в одноимённые папки, не затрагивая «соседей» по директории).
Примечание: Если у вас уже было установлено решение для резервного копирования предыдущих версий, то убедитесь, что вы удалили или ограничили доступ ко всем служебным файлам, не использующимся в данной редакции. Узнать список файлов и директорий вы можете в соответствующей главе.
После установки скрипт для резервного копирвоания сайту будет доступен по адресу http://имя_сайта/bitrix/admin/backup/
Доступ к скрипту восстановления по умолчанию имеют все пользователи, имеющие доступ к папке /bitrix/admin/, для более тонкой настройки вы можете воспользоваться настройками доступа к папке /bitrix/admin/backup/ (или отдельным скриптам в ней) в файловой системе сайта (например через административный интерфейс Bitrix .NET Forge CMS), установив доступ только главному определённой роли пользователей сайта.
Настройка прав доступа
Вы можете самостоятельно установить права доступа на все файлы и папки продукта, по умолчанию они задаются правами на корневые папки в которых находятся.
Мы рекомендуем закрыть права на запись для всех ролей кроме ответственных (например администраторов), оставив права на чтение только для тех файлов и папок, где это жизненно необходимо.
Рекомендуемая разработчиком матрица прав доступа:
| Все пользователи | Пользователи панели управления с правом резервного копирования |
| /bitrix/admin/backup/Default.aspx | запретить все операции | наследовать от /bitrix/admin/ |
| /bitrix/admin/backup/Backup.aspx.cs | запретить все операции | наследовать от /bitrix/admin/ |
| /bitrix/admin/backup/Web.config | запретить все операции | наследовать от /bitrix/admin/ |
| /bitrix/admin/backup/RestoreTool.rar | запретить все операции | наследовать от /bitrix/admin/ |
| /App_Code/Buckup.cs | запретить все операции, либо наследовать от /App_Code/, если такая директория есть | запретить все операции, либо наследовать от /App_Code/, если такая директория есть |
| /bin/Rar.exe | наследуется от /bin/ | наследуется от /bin/ |
| /backup/ | запретить все операции кроме чтения | запретить все операции кроме чтения |
Примечание: Данная матрица не описывает права администратором или разработчиков, ответственных за работоспособность скриптов, входящих в решение. Вполне возможно что для их ролей вам потребуется установка на некоторые файлы и папки больших полей для внесения правок через административный интерфейс.
Примечание: Права на папку /backup/ устанавливаются исходя из необходимости иногда копировать с работающего сайта резервные копии на другой сайт для восстановления напрямую. Для повышенного режима безопасности мы рекомендуем права на эту папку закрыть для пользователей, не имеющих доступа к панели управления
Предыдущие версии решения
В данной главе описывается структура файлов и папок более ранних версий решения по резервному копированию. Данная информация может быть важна для вас, если вы в ручном режиме обновляете решение и в целях обеспечения безопасности вам необходимо удалить или ограничить доступ ко всем файлам и папкам, которые больше не используются для работы решения.
Версия 1.0
Решение по резервному копированию v.1.0 распространялось готовым пакетом скриптов Coffeediz_NF_backup.
В содержимое пакета входят:
- /bitrix/admin/backup.aspx
- /bitrix/admin/backup.aspx.cs
Примечание: Данные файлы были изменены и перемещены в дирректорию /bitrix/admin/backup/ уже в версии 2.0
Резервное копирование
Веб-интерфейс

Панель в настоящий момент позволяет осуществить резервное копирование:
- Всегда копируя ядро продукта (рассматривая основные сценарии резервного копирования в предыдущей статье мы пришли к выводу, что это является необходимым для большинства пользователей)
- Возможность включить или не включать в бекап публичную часть сайта (подходит для сценария с переносом ядра проекта для быстрого разворачивания «заготовок» сайтов со всеми модулями разработчика без дополнительных настроек)
- Возможность исключить файлы больше определённого размера из архива
- Возможность исключить файлы или директории по маске (возможно использование данного пункта для исключения файлов ядра в тех редких ситуациях, когда в этом нет необходимости, а так же для исключения других ненужных кастомных файлов и/или папок)
- Возможность не сжимать медиа-файлы (рекомендуется использовать, если вы опасаетесь повреждения этих файлов, но намереваетесь упаковывать архив для уменьшения его веса)
- Возможность включить или не включать в резервную копию базы данных (например если вам необходимо скопировать только файловую структуру проекта)
- Возможность задания длительности шага и интервала между шагами резервного копирования (рекомендуется к использованию на виртуальных хостингах и серверах с ограниченными системными ресурсами, на которых в противном случае работа скрипта может вызывать ошибку ответа сервера)
- Возможность отключить компрессию архива (резервная копия будет занимать больше места, однако работа скрипта пройдёт быстрее и окажет меньшую нагрузку на сервер)
- Проверка целостности архива – рекомендуется не отключать данную опцию, позволяющую быть максимально уверенным в работоспособности полученной резервной копии.
Работа скрипта иллюстрируется прогресс-баром:

Наличие данного атрибута на экране говорит о том, что процесс создания резервной копии не завершён и нельзя закрывать страницу. После исчезновения прогресс-бара с экрана вы увидите новую резервную копию в списке, она будет иметь имя папки сайта с добавлением даты и времени создания резервной копии, чтобы вы могли спокойно хранить на внешнем носителе или хранилище несколько резервных копий разных сайтов.
Так же для резервной копии указываются размер и дата последнего изменения. Последний параметр должен соответствовать дате и времени в названии файла (с точностью до минуты), противное говорит о возможном изменении резервной копии (например злоумышленником), что может привести к неработоспособности файла бекапа!
Агенты резервного копирования
Агенты позволяют выполнять заранее спланированное действие, оформленное в виде скрипта в назначенный период времени. К сожалению, CMS не может запустить агент самостоятельно без участия веб-сервера, поэтому агенты запускаются только на хите пользователя, а значит, для того чтобы в назначенное время был сделан бекап на сайт должен зайти хотя бы 1 человек.
Для живых проектов это не представляет сложности. Для проектов с небольшой посещаемостью, если в назначенное время на сайте не будет ни людей, ни поисковых роботов не будет критичным, если агент запустится после назначенного времени, как только будет сделан хотя бы 1 хит.
Панель создания агентов расположена под панелью настроек бекапа.

На данной панели вы можете увидеть все созданные агенты резервного копирования с указанием их характеристик: времени начала исполнения, периодичности и имени. Так же вы можете удалить более ненужный агент или создать новый с помощью кнопки "создать агент с выбранными конфигурациями" - в этом случае вы увидите диалог создания агента:

При этом все характеристики для будут зафиксированы из установленных в верхней панели, как если бы вы сделали бекап прямо сейчас.
Примечание. Так же удалить агенты бекапирования возможно через центральную панель управления агентами, расположенную по адресу /bitrix/admin/Scheduler.aspx (настройки -> Инструменты -> Агенты).
Некопируемые решением области
Примечание: Для предотвращения бесконтрольного разрастания файлов бекапа из резервной копии исключается директория с создаваемыми бекапами - /backup/.
ВАЖНО! Так же в настоящей версии решения следует обратить внимание на тот факт, что вырезается не содержимое директории, а директория целиком, хотя её наличие является критически важным для работоспособности скрипта по резервному копированию. После восстановления необходимо самостоятельно создать директорию /backup/ или повторно установить полный комплект скриптов решения.
Примечание: Для предотвращения переноса неактуальной информации и уменьшения размера резервных копий не переносится кеш сайта.
Кеш будет автоматически создан при штатной работе сайта при первом же обращении пользователя к странице, что может привести к незначительному замедлению работы отдельных страниц сайта при первом обращении к ним пользователей и возрастанию нагрузки на сервер после восстановления из резервной копии.
Восстановление сайта из резервной копии
Общие сведения
Для восстановления из резервной копии необходимо воспользоваться набором утилит RestoreTool, которую можно скачать на этапе создания резервной копии из панели решения начиная с версии 2.0 решения для резервного копирования:
- /bitrix/admin/backup/RestoreTool.rar
Содержимое архива необходимо распаковать и скопировать в корень сайта.
Файл web.config является не обязательным, однако без корректного файла скрипт восстановления не будет работать (проблема может быть актуальна при переносе на «пустой» хостинг или сервер).

Помимо набора скриптов для восстановления в корень сайта необходимо скопировать резервную копию из которой будет восстановлен сайт!
ВНИМАНИЕ! В настоящий момент работа скрипта не предусматривает возможности выбора файла резервной копии, поэтому не копируйте на сайт 2 и более резервных копий во избежание восстановления из неактуальной или нерабочей копии.
Скрипт имеет возможность отключения восстановления резервной копии Базы данных (снимите галочку, если вы хотите восстановить только файловую систему или ваша резервная копия не содержит БД).
Восстановление MS SQL Базы данных
Восстановление баз данных MS SQL имеет ряд особенностей, которые в частности ограничивают функциональность инструмента и накладывают ряд особенностей:
- Для корректного восстановления БД необходимо указать адрес сервера Баз Данных (уточняется у хостера, системного администратора, либо самостоятельно).
- Каталог – Имя Базы данных, которая будет создана. В настоящий момент скрипт восстановления не может восстановить сайт в имеющуюся базу данных, если она не является исходной. Т.е. если вы восстанавливаете старую версию сайта, то вам будет достаточно указать название старой БД, однако если вы создаёте сайт на новом хостинге или восстанавливаете сайт «рядом» со старым, то вам не удастся сделать это даже в условно «пустую» БД – необходимо предоставить скрипту возможность создать БД самостоятельно!
- Логин – имя пользователя базы данных. В случае восстановления на сервер с отсутствующей БД (см. предыдущий пункт) пользователь должен иметь права администратора сервера БД (или по крайней мере возможность создания баз данных). После восстановления БД вы можете ограничить права пользователя на сервере на работу только с конкретной базой данных, либо исправить строку подключения БД (в web.confog) поставив в качестве пользователя того юзера, который обладает меньшими, но достаточными правами.
- Пароль пользователя БД под которым будет выполнено восстановление БД.
- Возможно введение возможности разбиение больших архивов (свыше 1ГБ) на части для упрощения транспортировки.
Обращаем ваше внимание на то, что логин и пароль пользователя БД (а так же адрес сервера и имя БД) могут отличаться от тех, которые использовались ранее на сервере, где была сделана резервная копия, если вы восстанавливаете сайт с созданием базы данных (например при переезде проекта на другой сервер).
После заполнения реквизитов рекомендуется проверить подключение к серверу. В этом случае проверяется только адрес БД, логин и пароль администратора сервера БД (если вы укажете реквизиты пользователя БД, не имеющего прав на создание БД, то проверка пройдёт неуспешно).
После успешного заполнения всех реквизитов восстановления БД (или при снятой галочке «восстановить Базу данных») нажмите кнопку «Восстановить» и дождитесь сообщения об успешном восстановлении сайта.
ВАЖНО! Не закрывайте страницу восстановления до окончания восстановления во избежание неполного восстановления системы, которое приведёт.
После восстановления сайта из бекапа
Первое и самое важное – удалите файлы резервной копии и решения по восстановлению из корня сайта. Файл web.config удалять уже не требуется – он заменяется в процессе восстановления корректным файлом, который содержит строку подключения к базе данных. Без корректно заполненного web.config сайт работать не будет! Однако вам следует понимать, что наличие в корне сайта файлов бекапа и скрипта восстановления – потенциальная угроза – если злоумышленник узнает об их наличии, то сможет попробовать воспользоваться процедурой повторного восстановления из резервной копии, что может привести к потере работоспособности сайта (например, если файловая система и БД окажутся несовместимыми) или вы просто откатитесь к старой версии сайта и потеряете все изменения, внесённые с момент самостоятельного восстановления. Не стоит компрометировать свой сайт без нужды.
Второе, что мы рекомендуем сделать – ограничить права пользователя БД, используемого на сайте для подключения к MS SQL Server (средствами сервера), либо замена его на пользователя с меньшими правами (необходимо внести соответствующие изменения в строку подключения БД в web.config).
Для корректной работы инструмента создания резервной копии на вновь восстановленном сайте необходимо вручную создать папку /backup/ в корне или произвести повторную установку всего решения для создания резервных копий сайта на Bitrix .Net Forge CMS от кофе-Дизайн студии.