Верстаю на скорую руку 🙂 Наверно самое оптимальное и более удобное резервное копирование нужно производить на удаленный локальный хост где настроена Samba. Локальное нас не устраивает, тем, что оно локальное, умрет SD карта / SSD, пиши все пропало. Копировать на внешнее облако в интернете (как это тупо проповедуют некоторые блогеры) – не безопасно. Безопасно, когда есть что-то свое под носом и ты его хозяин. 🙂 SAMBA сервер в сети (например на NAS). Я перепробовал всякие варианты резервного копирования через sync / scp / ssh / nfs … и дальше контейнера с сервисом прорваться не удавалось – то root права нужны в докере/ то mount с ключом -a не работает, то еще что-то … эти докеры это просто сущий ад. Они очень ограничивают ваши возможности в конфигурации умного дома. Можно конечно все настроить и через docker-compose, но мне лень этим заниматься. Какой бы олень во всю трубу не трубил, что это docker это круто для автоматизаций – не верьте 🙂 Приступим к реализации.
У нас в сети есть уже готовый SAMBA доступ с логином и паролем. Пусть это будет по пути \\192.168.1.30\backup\RP4main, логин admin и пароль qwerty123. В эту папку и будем складировать наши снапшоты (бэкапы).
Установка репозитория Home Assistant Add-on: Samba Backup, это всего лишь иструмент для начала …
Двигаемся в Home Assistant -> Supervisor -> Add-on Store и добавить URL https://github.com/thomasmauerer/hassio-addons
Настраиваем его конфигурацию. Здесь нам важно только несколько параметров т.е. все кроме trigger_time. 🙂 Автоматизацию мы настроим отдельно. Да и не забудьте про workgroup=, у меня он свой в домашней сети. trigger_time в manual, так как мы планирем его настраивать через автоматизации в HA
и смотрим в Журнал на предмет ошибок. Все должно быть четко.
Настраиваем автоматизацию в HomeAssistant. Это как пример. Что бэкапить и как бэкапить на ваше усмотрение.
- создается полный бэкап 1 дня каждого месяца
- создается каждые 3 часа снапшоты zigbee2mqtt, mosquitto, samba backup, папка homeassistant, local addons и т.п.
- создается каждый первый день недели снапшот из mariadb, zigbee2mqtt, mosquitto, папка homeassistant, ssl, share, Media, addons и т.д.
automation.yaml
# All addons # core_ssh, core_check_config, core_mosquitto, 45df7312_zigbee2mqtt, a0d7b954_portainer, a0d7b954_logviewer, 15d21743_samba_backup, core_mariadb, core_samba, core_configurator, a0d7b954_phpmyadmin - alias: 'Samba full Backup every 1 day month main RPi4 server' trigger: platform: time at: "02:00:00" condition: - condition: template value_template: "{{ now().day == 1 }}" action: - service: hassio.addon_stdin data: addon: 15d21743_samba_backup input: command: trigger backup_name: 'SMB: {type} BackupRPi4 iHome {date} v{version}' exclude_addons: [] - alias: 'Samba snapshot partial every 3 hour main RPi4 server' trigger: # platform: time_pattern # Perform backup every 3 hours. # minutes: "/10" platform: time_pattern hours: "/3" action: - service: hassio.addon_stdin data: addon: 15d21743_samba_backup input: command: trigger backup_name: "SMB: {type} BackupRP4 iHome {date} v{version}" exclude_addons: [ core_ssh, core_check_config, a0d7b954_portainer, a0d7b954_logviewer, core_samba, core_configurator, core_mariadb, a0d7b954_phpmyadmin ] exclude_folders: [] - alias: 'Samba snapshot partial every week main RPi4 server' trigger: platform: time at: "01:00:00" condition: - condition: template value_template: "{{ now().weekday == 1 }}" action: - service: hassio.addon_stdin data: addon: 15d21743_samba_backup input: command: trigger backup_name: 'SMB: {type} BackupRPi4 iHome week {date} v{version}' exclude_addons: [ core_ssh, core_check_config, a0d7b954_logviewer, core_samba, core_configurator, a0d7b954_phpmyadmin ] - alias: ' Samba Backup Notifications main RPi4 server' trigger: platform: state entity_id: sensor.samba_backup condition: - condition: not conditions: - condition: state entity_id: sensor.samba_backup state: IDLE action: - service: notify.telegram data_template: title: '*Information*' message: "SMB: BackupRPi4 {{ states('sensor.samba_backup')|lower }}." - service: logbook.log data_template: name: Samba Backup message: "{{ states('sensor.samba_backup')|lower }}" - alias: 'Samba Notify on failed backup main RPi4 server' trigger: - platform: state entity_id: sensor.samba_backup to: 'FAILED' action: - service: notify.telegram data_template: message: 'SMB: ❌ Home Assistant backup to NAS failed!' - alias: 'Notify on succesful backup main RPi4 server' trigger: - entity_id: sensor.samba_backup platform: state to: 'SUCCEEDED' action: - service: notify.telegram data_template: message: 'SMB ✅ Home Assistant backup to NAS succeeded!'
аддоны у вас могут быть свои. Имена их я определил через команду в Linux
pi@home> docker ps -a
заходим в HomeAssistant -> Supervisor -> Snapshots
Там что то уже есть.
Вот его сервисы
А вот lovelace карточка (lovelace.yaml)
title: Резервное копирование cards: - type: vertical-stack cards: - type: entities title: Резервное копирование state_color: true entities: - entity: sensor.samba_backup icon: mdi:file-replace-outline name: Статус задачи - attribute: backups_local entity: sensor.samba_backup icon: mdi:file-outline name: Кол-во локальных копий type: attribute - attribute: backups_remote entity: sensor.samba_backup icon: mdi:file-move-outline name: Кол-во удаленных копий type: attribute - attribute: total_backups_succeeded entity: sensor.samba_backup icon: mdi:file-check-outline name: Кол-во доступных копий type: attribute entity: sensor.samba_backup icon: mdi:file-cancel-outline name: Кол-во проблемных копий type: attribute - attribute: last_backup entity: sensor.samba_backup icon: mdi:file-clock-outline name: Последний бэкап был type: attribute show_header_toggle: false
Спасибо! Очень полезно.