Бекап портала Битрикс24 на сетевое хранилище Windows

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Вам приходилось сталкиваться с ситуацией, когда сайт или портал Битрикс24 недоступен, потому что на диске неожиданно закончилось место? Да, последний бэкап съел все место на диске в самый неподходящий момент.
e31c902cb53e7729fad090ae0d41559b.png
Это обычная история, особенно для Bitrix24 в коробке, когда корпоративный портал начинают активно использовать сотрудники компании.
Здесь есть и еще один риск: если слетит диск, можно потерять и сам сайт/портал, и его бекапы. Поэтому сетевое хранилище бекапов — отличное решение.
О том, как корректно настроить бекап вашего сайта на сетевое хранилище Windows вы узнаете в этой статье. Задавайте вопросы, делитесь записью в соцсетях.

Многие сайты и корпоративные порталы Bitrix24 работают на Виртуальной машине Битрикс. Это удобно и надежно: не надо долго и нудно настраивать окружение сервера, сразу все ПО настроено "из коробки". Как правило, хостится это богатство на VPS или VDS тарифах или в каком-нибудь корпоративном облаке/сервере без бекапов.

Дано:
  1. Сайт или портал на Виртуальной машине Битрикс (версия 5.0 и выше).
  2. Сетевое хранилище с постоянным ip-адресом 10.10.10.30 (локальная сеть) на ОС WIndows.
  3. Папка Backup на сетевом хранилище, куда мы будем складывать бекапы Битрикс24-портала или сайта на Битрикс.
Задача:
  1. Настроить регулярное резервное копирование файлов и БД сайта/Битрикс24.
  2. Хранить резервные копии на сетевом хранилище.
Решение
1. Для начала вспомним, что Виртуальная машина Битрикс работает на основе CentOS. Поэтому первым делом необходимо убедится, что сетевое хранилище доступно по ip–адресу.
ping -c3 10.10.10.30
PING 10.10.10.30 (10.10.10.30): 56 data bytes
64 bytes from 10.10.10.30: icmp_seq=0 ttl=64 time=6.000 ms
64 bytes from 10.10.10.30: icmp_seq=1 ttl=64 time=3.593 ms
64 bytes from 10.10.10.30: icmp_seq=2 ttl=64 time=5.785 ms

Пинг проходит, хранилище доступно.

2. Теперь надо вспомнить, что изначально в CentOS нет возможности подключиться к Windows-системам. Для подключения этой функции необходимо под root установить пакет samba:
 [root@server1 ~]# yum install samba

3. Теперь нам надо примонтировать внешнее хранилище как диск в Виртуальной машине Битрикс.
3.1 Создадим точку монитирования windows в папке mnt, эта папка будет соответствовать сетевому хранилищу
[root@server1 ~]# mkdir /mnt/windows

3.2 Запишем код подключения сетевого хранилища в настройки файловой системы CentOS, чтобы диск подключался автоматически при каждой загрузке ВМ Битрикс. Для этого редактируем под root файл /etc/fstab и добавляем вниз следующую строку:
 //10.10.10.30/Backup /mnt/windows cifs defaults,uid=600,rw,suid,username=windowsuser,password=windowspassword 0 0

где:
  • //10.10.10.30/Backup - папка для хранения бекапов на сетевом хранилище с айпи-адресом 10.10.10.30, два слеша обязательные;
  • /mnt/windows - точка монитрования диска
  • uid - id пользователя CentOS, который должен стать владельцем примонитированного хранилища. Для виртуальных машин Битрикс это обычно id пользователя bitrix; узнать id вашего пользователя можно командой id -u bitrix
  • username,password - логин и пароль пользователя Active Directory, имеющего права записи на сетевое хранилище.
Остальные параметры можно оставить без изменения. Сохраняем изменения в файле /etc/fstab и выполняем команду перемонтирования дисков
 [root@server1 ~]# mount -a

Внимание! Эта операция перемонитирует все диски файловой системе. Эту операцию не стоит делать в загруженное время.
После этого выполняем команду df -h и видим наш диск среди других дисков системы:
 [root@server1 ~]# df -h
Filesystem         Size  Used Avail Use% Mounted on
/dev/sda4          886G  430G  412G  52% /home/bitrix/www
//10.10.10.30/Backup  1,0T  0,2T  0,8T  80% /mnt/windows

Диск успешно примонтирован, осталось 2 простых шага: включить резервное копирование в настройках виртуальной машины Битрикс и сделать скрипт перемещения файлов бекапа на сетевое хранилище.

4. Включить резервное копирование файлов и БД вашего сайта или портала Битрикс24 в Виртуальной машине Битрикс просто, это описано в учебном курсе.
Заметим только, что бекап запускается по крону, поэтому необходимо запускать перемещение файлов бекапа на сетевое хранилище через 2-3 часа после запуска бекапа. Точный срок запуска скрипта перемещения файлов на хранилище Вам необходимо вычислить самостоятельно, он будет зависеть от размера вашего сайта.

5. Создадим bash-скрипт перемещения файлов бекапа на сетевое хранилище.
Обычно Виртуальная машина Битрикс складывает готовый архив сайта в директорию /home/bitrix/backup/archive. Поэтому мы заходим в директорию /home/bitrix и создаем файл archive.sh следующего содержания:
#!/bin/bash

sDirectory="/home/bitrix/backup/archive"
snew="/mnt/windows"

find $sDirectory -type f -maxdepth 1 -exec mv {} $snew \; 

где в sDirectory указывется путь к папке, в которую ВМ Битрикс складывает сделанные архивы, snew - точка монитрования сетевого хранилищца в ВМ Битрикс.
Файл перемещения архива готов, нам осталось добавить его запуск на крон. Добавляем в файл /etc/crontab следующую строку:
 10 2 * * * bitrix /home/bitrix/archive.sh

и сохраняем изменения. Теперь скрипт перемещения архива будет запускаться каждую ночь в 2 часа 10 минут.

Интересные статьи

Интересные статьи

Привет, недавно мне попалась интересная задачка настроить хранилище для бэкапа большого количества блочных устройств. Каждую неделю мы выполняем резервное копирование всех виртуаль...
Недавно случайно узнал, что BitBucket, где лежат мои Mercurial-репозитории, прекращает поддержку Mercurial: новые репозитории создавать уже нельзя, а существующие будут удалелы с 1.06.2020. Возмо...
В операционных системах семейства Windows реализована довольно неплохая система журналирования событий безопасности. О ней в различных публикациях и обзорах написано много чего хорошего, но э...
В Челябинске проходят митапы системных администраторов Sysadminka, и на последнем из них я делал доклад о нашем решении для работы приложений на 1С-Битрикс в Kubernetes. Битрикс, Kubernetes, Сep...
Загорелся желанием поставить себе на десктопную версию Slack тёмную тему, т.к. много времени провожу в нём в тёмное время суток и хочется комфортно работать в однородной тёмной среде. Так ка...