[SSH & Web Terminal] How to access exit code of script from home assistant

I’m executing a script in an automation through

      - service: hassio.addon_stdin
        data:
          addon: a0d7b954_ssh
          input: "/config/scripts/backup_move.sh"

Is there any way to monitor the success of the execution or even better stdout and stderr back to home assistant so I could issue a warning?

1 Like

Thank you for suggesting how to run the script so that the script can make edits to the Linux OS outside of the container in the docker. The solution turned out to be under the nose:smiley:. You probably know that OS Home Assistant works in docker, and docker itself is in Linux Alpine, so if you run the script through shell_command, the script cannot access the Linux root system from the container, and your example helped and it works.

To understand why your option is working, I will sign and post the links below

  1. The script running through shell_command cannot make\add\create files in the root of the Linux OS

The script itself, which adds 3 links to the extreme versions of the NUT package (Network UPS Tools) to repositories.

#!/bin/bash
cat <<_EOF_ >> /etc/apk/repositories
http://nl.alpinelinux.org/alpine/edge/main
http://nl.alpinelinux.org/alpine/edge/community
http://nl.alpinelinux.org/alpine/edge/testing
_EOF_

apk add nut mc

Why is this necessary? For understanding, I share information

I tried all the options, none of them worked, but inside the container it works

shell_command:
  bash_scripts_del_video: bash /config/scripts/del_video_files.sh
  bash_shell_del_video: bash /config/shell/del_video_files.sh
  find_and_del: "find /media/AgentDVR/* -name *.* -mmin +1 -delete > /dev/null"
  del_video01: /bin/bash /home/homeassistant/.homeassistant/scripts/del_video_files.sh
  del_video02: sh /config/scripts/del_video_files.sh

And this is already a working option and I can now make changes to the Linux OS from the container where the Home Assistant is spinning

alias: 'System: Installing packages via SSH addon'
sequence:
  - service: hassio.addon_stdin
    data:
      addon: a0d7b954_ssh
      input: /config/scripts/install_packages.sh
mode: single
icon: mdi:blur
Текст на русском (Text in Russian)

Спасибо, что навели на мысль, как запустить скрипт, чтобы скрипт смог внести правки в ОС Linux за пределами контейнера в докере. Решение то оказалось под носом :smiley:. Вам наверно известно, что OS Home Assistant работает в докере, а сам докер стоит в ОС Linux Alpine, так вот, если запускать скрипт через shell_command, то скрипт не может получить доступ к корневой системе Linux из контейнера, а ваш пример помог и он рабочий.

Для понимания почему ваш вариант рабочий ниже распишу и выложу ссылки

  1. Скрипт запущенный через shell_command не может вносить\добавлять\создавать файлы в корне ОС Linux

Сам скрипт, который добавляет в repositories 3 ссылки на крайние версии пакета NUT (Network UPS Tools ).

#!/bin/bash
cat <<_EOF_ >> /etc/apk/repositories
http://nl.alpinelinux.org/alpine/edge/main
http://nl.alpinelinux.org/alpine/edge/community
http://nl.alpinelinux.org/alpine/edge/testing
_EOF_

apk add nut mc

Зачем это нужно? Для понимания делюсь инфой
Server and client. UPS Management · Issue #204 · hassio-addons/addon-nut · GitHub
Shell command doesn’t work (It works well in previous version) · Issue #57283 · home-assistant/core · GitHub
Shell command doesn’t work (It works well in previous version) · Issue #57283 · home-assistant/core · GitHub

Пробовал все варианты, ни один из них не отработал, а внутри контейнера это работает

shell_command:
  bash_scripts_del_video: bash /config/scripts/del_video_files.sh
  bash_shell_del_video: bash /config/shell/del_video_files.sh
  find_and_del: "find /media/AgentDVR/* -name *.* -mmin +1 -delete > /dev/null"
  del_video01: /bin/bash /home/homeassistant/.homeassistant/scripts/del_video_files.sh
  del_video02: sh /config/scripts/del_video_files.sh

А это уже рабочий вариант и я теперь могу вносить изменения в ОС Linux из контейнера, где крутится Home Assistant

alias: 'Система: Установка пакетов через аддон SSH'
sequence:
  - service: hassio.addon_stdin
    data:
      addon: a0d7b954_ssh
      input: /config/scripts/install_packages.sh
mode: single
icon: mdi:blur
1 Like