Рассмотрим варианты бэкапа и их настройку, а также восстановление.
Сразу после настройки умного дома встает вопрос бэкапа.
В зависимости от желаемого результата, можно бэкапить как саму систему majordomo с настройками, так и в целом флешку малинки - на случай умирания флешки, или других серьезных отказов.
Рассмотрим, какие инструменты у нас есть в Majordomo и как это можно использовать.
1.Встроенный бэкап
Статья в базе знаний
Позволяет сохранять параметры и настройки самого MD, а именно файлы дизайна, кода, базу данных, модули.
Управление им происходит на странице "Проверка обновлений", бэкапы сохраняются в папку /var/www/html/cms/saverestore.
Бэкапы дизайна, кода и данных, делаются автоматически при обновлении системы, а также туда автоматически попадают бэкапы модулей при обновлении и маркета.
Автоочистки старых копий нет, при необходимости - нужно настраивать через сценарии, cron, и т.д..
Обращаю внимание,что если вручную поудалять файлы резевных копий из папки saverestore, то в интерфейсе MD остаются вот такие хвосты. Как избавиться от них - пока не понял.
2. Модуль резервного копирования в маркете дополнений
Статья в базе знаний по модулю
Обсуждение на форуме
Позволяет гибко настроить файлы для резервного копирования (из папки MD), умеет облачные хранилища (WebDav (Яндекс Диск, Box.com и др.), Cloud Mail.ru, Dropbox , FTP), поддерживает удаление старых копий.
Лично у меня отлично заработало в связке Яндекс.диском, но при попытке настроить бэкапы по SMB или FTP архивы невозможно было распаковать, хотя по размеру вроде бы были нормальные. Возможно проблема с настройками моей малины, но в целом это сигнал - проверяйте резервные копии!
3. Резервное копирование образа системы
Больше всего меня беспокоил надежный и удобный вариант резервного копирования всей Raspberry, потому что кроме самого MD, как правило, по ходу совершенстования умного дома, всегда вносятся какие либо изменения непосредственно в операционную систему - настраивается сеть, конфигурируется Homebridge, обновляются и добавляются пакеты, обновляется прошивка малины и т.д.
3.1. Ручное создание образа
Самый простой способ сделать резервную копию - это достать флешку, вставить в картридер и с помощью утилит типа Win32DiskImager или Etcher, сохранить образ флешки себе на компьютер. В случае каких либо серьезных проблем или смерти флешки, вы просто покупаете новую, с помощью этих же утилит записываете образ обратно, и все работает как и раньше.
Основное неудобство в том, что такой способ требует ручных манипуляций, отнимает время и связан с выключением малинки (желательно используя мягкое выключение через shutdown, а не тупо выдергивать из розетки).
3.2. Автоматическое или полуавтоматическое создание образа - Скрипт raspiBackup
Лучший вариант для тех кто не хочет\не умеет писать скрипты.
Подготовка к настройке:
Решаем в какую папку будем сохранять резервные копии - для меня предпочтительным вариантом является smb шара моего роутера. Можно также бэкапиться на подключенный к малинке жесткий диск.
Создаем папку backup в корне малинки
sudo mkdir /backup
Устанавливаем пакеты самбы
sudo apt-get update sudo apt-get install samba samba-common-bin smbclient cifs-utils
Если бэкапим на самбу - монтируем сетевую шару роутера
sudo mount -t cifs //192.168.2.1/AiDisk_b1/share/Backup/ /backup --verbose -o vers=2.0
В моём случае указан параметр vers=2.0 потому что роутер не поддерживает версию самбы выше 2.0. Если у вас шара на windws 8-10 можно попробовать версии 3.0, 3.1, или вообще не задавать этот флаг.
Если на usb жесткий диск то
sudo mount /dev/hda2 **/mnt/sda1 **-rw
(здесь указывается путь к разделу диска, узнать можно через команду lsblk)
Качаем и запускаем установщик raspiBackup
curl -o install -L https://raspibackup.linux-tips-and-tricks.de/install; sudo bash ./install
Установщик имеет графический интерфейс, разобраться в нем легко.
запускаем Install components, затем переходим к configure major options
C2 Настраиваем путь к бэкапу - в нашем случае это /backup/
C3 Количество резервных копий - желаемое
C4 Backup type - dd and restore from Windows - значит делаем полный снимок флешки с возможностью восстановления из под окошек.
C6 Services to stop and start. Здесь есть возможность отметить сервисы, которые необходимо остановить перед бэкапом, для создания консистентной копии. С помощью пробела указываем желаемые, жмем ОК, далее выстраиваем порядок остановки от самого важного к менее важному. После окончания бэкапа они запустятся в обратной последовательности
C9 - можно настроить расписание бэкапа
C10 - настройка сжатия. Сильно увеличивает время резервного копирования на малинке, для себя решил отключить.
Выходим из конфигуратора и сохраняем настройки.
Также для отображения прогресс-бара рекомендую установить пакет pv
sudo apt install pv
И при ручном запуске бэкапа добавлять флаг -g для отображения шкалы прогресса.
Для ручного запуска выполняем
sudo raspiBackup.sh -m detailed -g
Полная копия 16Gb флешки занимает у меня 20 минут, на скорости 12Mb\sec
Восстановить такой бэкап можно из-под windows с помощью тех же etcher или win32diskimager
Пока что сам протестировал бэкап и востановление полного образа через windows, буду рад дополнить информацией о том как грамотно восстановить бэкапы самого MD - тупо перезаписывать файлы, или нужно какие либо еще манипуляции.
Москва, Россия
На форуме: deemjd