Резервное копирование и восстановление Domoticz

Бывает иногда, когда обновления beta версий Domoticz нарушают работу определенных плагинов или скриптов. В таком случае нам необходимо вернуть предыдущую версию базу данных Domoticz или предыдущий бэкап как можно быстрее в строй. Сам процесс резервного копирования и восстановления Domoticz является очень простым и не требуется каких-то сложных манипуляций. Для начала необходимо определиться, куда мы будем бэкапить наши данные и как они будут защищены. Для бэкапа можно выбрать различные методы, но нам необходим:

минимум для бэкапа : базу данных Domoticz, а все остальное будем восстанавливать, а именно установку Domoticz/скрипты/плагины и .тп.

максимум для бэкапа : каталог, где установлен Domoticz со всем его содержимым (скриптами/плагинами/картинками и.п.)

Рассмотрим оба метода.

Резервное копирование БД

Пример для новочальных

Самый дешевый и простой вариант сходить на сам Domoticz сервер и запустить в ручную : (в этом случае мы бэкапим только БД Domoticz)

Setup -> Settings -> Backup/Restore

Пример 1

БД как правило находится в корне установки каталога самого Domoticz. Имя файла его domoticz.db.  Это и есть наша БД. Вот ее и бэкапим. Прилагаю простой bash скрипт для бэкапа его на флэш карту /backupdb, флэшка которая примонтирована как  :

root@rp1> mount /dev/sda2 /backupdb
#!/bin/bash
# script backup Flash card only file domoticz.db
service domoticz.sh stop
find /backupdb/ -name "*.tar.gz" -mtime +30 -delete
cd /backupdb
tar -zcf domoticz-`date +%d%m%y`.tar.gz /home/pi/domoticz/domoticz.db
service domoticz.sh stop

где:

  • /backupdb – каталог куда мы бэкапим наши версии БД  (флэшка) на флэшке
  • /home/pi/domoticz/domoticz.db наша БД Domoticz (этот путь может быть другой, в зависимости куда вы устанавливали Domoticz при первом запуске)
  • БД датой старше 30 дней будут удаляться

Выполняйте его ручками 🙂 или ставьте задачу через crontab. Рекомендую ежедневное бэкапирование (через cron), а перед апгрейдом domoticz – в ручную, путем запуска выше указанного скрипта.

Пример 2

Копирование БД на удаленный хост с FTP поддержкой. Тут должно быть все понятно.

#!/bin/bash
    # LOCAL/FTP PARAMETERS
    SERVER="192.168.1.31"  
    USERNAME="ftpuser"        
    PASSWORD="ftppassword"        
    DESTDIR="/tmp/backupdb"  
    DOMO_IP="192.168.1.30"  
    DOMO_PORT="8080"       
    ### END OF USER CONFIGURABLE PARAMETERS
    TIMESTAMP=`/bin/date +%Y%m%d%H%M%S`
    BACKUPFILE="domoticz_$TIMESTAMP.db" # backups will be named "domoticz_YYYYMMDDHHMMSS.db.gz"
    BACKUPFILEGZ="$BACKUPFILE".gz
    ### Stop Domoticz, create backup, ZIP it and start Domoticz again
    service domoticz.sh stop
    /usr/bin/curl -s http://$DOMO_IP:$DOMO_PORT/backupdatabase.php > /tmp/$BACKUPFILE
    service domoticz.sh start
    gzip -9 /tmp/$BACKUPFILE
    ### Send to Network disk through FTP
    curl -s --disable-epsv -v -T"/tmp/$BACKUPFILEGZ" -u"$USERNAME:$PASSWORD" "ftp://$SERVER/backupdb/Domoticz_backup/"				
    ### Remove temp backup file
    /bin/rm /tmp/$BACKUPFILEGZ
    ### Done!

Пример 3

Копирование БД на Dropbox.Пример здесь поэтому изобретать велосипед не буду 🙂

Пример 4

Копирование БД на NFS NAS (например : Synology).

На NAS Synology создаем папку общего доступа (сетевую) и даем ей NFS разрешения. На скриншоте ниже в качестве безопасности входа дан доступ IP-диапазону моей локальной сети. Все делается индивидуально, хотите расширяйте эти права или давайте ограниченный доступ. Для изолированного устройства от интернета это не так принципиально.

Монтируем сетевую папку с NFS правами на хосте Raspberry.

mount 192.168.1.15:/volume1/BACKUP/raspberry /backup/raspberry
#!/bin/bash
# backup on NAS file domoticz.db
service domoticz.sh stop
find /backup/raspberry -name "*.tar.gz" -mtime +30 -delete
cd /backup/raspberry
tar -zcf domoticz-`date +%d%m%y`.tar.gz /home/pi/domoticz/domoticz.db
service domoticz.sh stop

Полное копирование

#!/bin/bash
# script backup SD-card to synology only file domoticz

find /backup/domoticz/ -name "*.tar.gz" -mtime +14 -delete
cd /backup/domoticz
tar -zcf domoticz-`date +%d%m%y`.tar.gz /home/pi/domoticz

Резервное восстановление БД

Пример

#!/bin/bash
# restored domoticz.db from Flash card
sudo service domoticz.sh stop
cd /backupdb
tar -xvzf domoticz-`date +%d%m%y`.tar.gz -C /
sudo service domoticz.sh start

распакует БД domoticz.db с полным путем архива т.е. /home/pi/domoticz.  Это скрипт пример автоматизированного восстановления, хотя я рекомендую проделывать все в ручную.

Восстановление из полного копирования

  • останавливаем domoticz
  • переименовываем /home/pi/domoticz в /home/pi/domoticz_old
  • копируем из архива в /home/pi/domoticz
  • запускаем domoticz

Сценарий восстановления прост :

  • остановить stop сервис
  • восстановить из бэкапа последний снапшот Domoticz (будь то база или каталог с данными)
  • осуществить start сервиса.
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x