Резервное копирование снапшотов с помощью Samba в HomeAssistant Supervised

Верстаю на скорую руку 🙂 Наверно самое оптимальное и более удобное резервное копирование нужно производить на удаленный локальный хост где настроена 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

5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
1 Комментарий
Популярные
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
Антон
Антон
11.08.2022 21:06

Спасибо! Очень полезно.

1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x