База знаний VPS/VDS/Сервера Резервное копирование Резервное копирование BitrixVM на удаленный FTP - сервер

Резервное копирование BitrixVM на удаленный FTP - сервер

В данной статье будет рассмотренно создание резервного копирования BitrixVM на удаленный FTP - cервер. Так, как в сборке BitrixVM отсутсвует данный функционал, необходимо будет использовать наш скрипт для корректного выполнения.

Для создания резервного копирования в BitrixVM Вам необходимо авторизоваться под root пользователем в консоли или через VNC и перейти в панель управления BitrixVM
Далее необходимо выбрать пункт 6. Configure pool sites > 6. Change backup settings on site. и выбрать из списка имя хоста и согласиться на изменение настроек расписания автоматического резервного копирования

После этого необходимо выбрать переодичность и час запуска автоматического резервного копирования. Рекомедуем выбирать ночное время, когда нагрузка на сервер будет более минимальной



После выполненных действий задание о создание резервной копии появится в /etc/crontab.
Оно будет выглядеть примерно следующим образом - 10 22 * * * bitrix /opt/webdir/bin/bx_backup.sh sitemanager0 /home/bitrix/backup/archive

Бэкап будет создать в формате tar.gz и будет сохраняться в /home/bitrix/backup/archive

Далее Вам необходимо скачать наш скрипт по выгрузке бэкапа на FTP хранилище. Скачать данный скрипт Вы можете по ссылке - https://dl.hostiman.ru/sources/FtpBackup.php
После того, как скрипт будет скачан его необходимо будет поместить в папку, в которой сохраняются резервные копии «/home/bitrix/backup/archive» . Это важно, так как кроме бэкапов в этой папке ничего не должно быть - скрипт после выгрузки бэкапов удаляет их локально.
Далее Вам необходимо открыть скрипт и отредактировать некоторые переменные.

$host - хост или IP фтп-сервера

$login - логин фтп-сервера

$password - пароль фтп-сервера

$port - порт фтп сервера (по умолчанию 21, чаще всего менять не надо)

Если нужно, установите константу SAVE_LAST_DAYS - по умолчанию она установлена в значении 7, это означает что бэкапы будут сохранены за последнюю неделю (если бэкапы делаются реже, чем каждый день, можно увеличить это число, но учтите, что так может забиваться пространство FTP).

$removeUploaded - по умолчанию, всё что загрузит скрипт на фтп сервер, будет удалено с исходного сервера. Установите false, чтобы этого не происходило, но тогда файлы бэкапа будут храниться и на самом сервере и занимать лишнее место.

Поместив скрипт в папку с бэкапами, следующим шагом будет проверка установленного окружения для скрипта. Так как скрипт написан на PHP, то нужно установить всего 2 пакета - php-cli и php-ftp

Сделать это можно при помощи установленного в системе пакетного менеджера (yum, dnf или apt в зависимости от OS):

CentOS/Redhat: yum install php-cli php-ftp -y

Fedora/CentOS 8: dnf install php-cli php-ftp -y

Ubuntu/Debian: apt-get install php-cli php-ftp -y

После успешной установки окружения, можно попробовать запустить скрипт.

Важно! Скрипт создания бэкапа нужно запускать строго под пользователем bitrix, при создании бэкапа под root, могут возникнуть проблемы.

Войти под пользователя bitrix можно с помощью команды:

su bitrix

Запуск скрипта создания бэкапа можно произвести командой:  

php /home/bitrix/backup/archive/FtpBackup.php 

При успешной работе скрипта, он покажет прогресс подключения и выгрузки. Если есть проблемы, будут показаны ошибки выгрузки.

Если всё отработало корректно то к заданию 10 22 * * * bitrix /opt/webdir/bin/bx_backup.sh sitemanager0 /home/bitrix/backup/archive необходимо добавить следующую запись  && /usr/bin/php -f /home/bitrix/backup/archive/FtpBackup.php 
После этого вся общая команда должна принять вид

10 22 * * * bitrix /opt/webdir/bin/bx_backup.sh sitemanager0 /home/bitrix/backup/archive && /usr/bin/php -f /home/bitrix/backup/archive/FtpBackup.php 

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