Domoticz. Резервная копия базы данных по расписанию


Делаем резервную копию базы данных на внешний носитель по расписанию.

Настройте точку монтирования носителя по инструкции.

Создадим папку Domoticz_backup с вложенными папками database, scripts, www на внешнем носителе.

Создадим скрипт backup.sh и дадим права на запуск (инструкция тут) следующего содержания:

#!/bin/bash

DOMO_IP="192.168.1.70"  #Ip сервера
DOMO_PORT="8080" #порт сервера

TIMESTAMP=`/bin/date +%Y%m%d%H%M%S`
BACKUPFILE="domoticzbackup_$TIMESTAMP.db"
BACKUPFILEGZ="$BACKUPFILE".gz

#делаем бекапы базы данных и важных папок

/usr/bin/curl -s http://$DOMO_IP:$DOMO_PORT/backupdatabase.php > /mnt/usbs/Domoticz_backup/database/$BACKUPFILE  #укажите путь до каталога Domoticz_backup/database
tar -zcvf /mnt/usbst/Domoticz_backup/scripts/domoticz_scripts_$TIMESTAMP.tar.gz /home/pi/domoticz/scripts/ #укажите путь до каталога Domoticz_backup/scripts и путь до папки со скриптами domoticz
tar -zcvf /mnt/usbst/Domoticz_backup/www/domoticz_wwwfolder_$TIMESTAMP.tar.gz /home/pi/domoticz/www/ #укажите путь до каталога Domoticz_backup/www и путь до папки www domoticz

#удаление бекапов старше 1 месяца

/usr/bin/find /mnt/usbst/Domoticz_backup/database/ -name '*.db' -mtime +31 -delete
/usr/bin/find /mnt/usbst/Domoticz_backup/scripts/ -name '*.tar.gz' -mtime +31 -delete
/usr/bin/find /mnt/usbst/Domoticz_backup/www/ -name '*.tar.gz' -mtime +31 -delete

Отредактируйте параметры в соответствии с комментариями в скрипте.

Сделаем сценарий на lua в Domoticz для запуска нашего скрипта раз в день:

time = os.date("*t")
commandArray = {}

if (time.hour == 23 and time.min == 30 and time.sec == 00) then
os.execute ("/home/pi/domoticz/scripts/bash/backup.sh")
end

return commandArray

Отредактируйте путь до вашего скрипта backup.sh.