Shell Script mit shell_command und Fehler 127

Slice

New member
Hallo zusammen,

ich bin neu hier und habe mich extra angemeldet, da ich mich in HA einarbeite und ein Problem habe.
Installiert habe ich HA in einer VM auf Proxmox 8.2.7 auf einem Intel Nuc i3.
Der Softwarestand von HA ist aktuell:
Core 2024.11.1
Supervisor 2024.11.3
Operating System 13.2
Frontend 20241106.2

Jetzt zu meinem Problem. Ich habe div. Netzlaufwerke von meinem Windows Server verbunden und kann auch darauf zugreifen.
In HA habe ich das tägliche Backup eingerichtet, was auch soweit funktioniert. Die Backups lasse ich im lokalen Datenspeicher ablegen.
Über ein Script möchte ich das Backup auch noch auf mein Netzlaufwerk zusätzlich kopieren.
Dazu habe ich im Internet recheriert und gelesen das man eine weitere Automation anlegen soll, bei der das Script ausgeführt wird.

Momentan sieht die configuration.yaml so aus:
Code:
#New line to configuration.yaml to include linux shell scripts
shell_command: !include shell_commands.yaml

Dann die shell_commands.yaml so:
Code:
shell_command:
  shell_copy_backup: /bin/bash /homeassistant/copy_homeassistant.sh

Und die automations.yaml:
Code:
- id: '1731417107890'
  alias: Automatisches Backup
  description: Automatisches Backup
  triggers:
  - trigger: time
    at: 02:00:00
  conditions:
  - condition: time
    weekday:
    - mon
    - tue
    - wed
    - thu
    - fri
    - sat
    - sun
  actions:
  - action: hassio.backup_full
    metadata: {}
    data:
      compressed: true
      homeassistant_exclude_database: false
  mode: single
- id: '1731583606873'
  alias: Kopieren Backup
  description: Kopieren Backup
  triggers:
  - trigger: time
    at: 02:15:00
  conditions:
  - condition: time
    weekday:
    - mon
    - tue
    - wed
    - thu
    - fri
    - sat
    - sun
  actions:
    - action: shell_command.shell_copy_backup
  mode: single

Allerdings bekomme ich immer einen Fehler im Log:
Code:
2024-11-19 02:15:00.245 ERROR (MainThread) [homeassistant.components.shell_command] Error running command: `/bin/bash /homeassistant/copy_homeassistant.sh`, return code: 127
NoneType: None

Das Script copy_homeassistant.sh sieht so aus:
Code:
#!/bin/bash

/bin/cp -u -n -p /backup/*.tar /media/Raspibackup/HomeAssistant/
/usr/bin/find /backup/*.tar -mtime +30 -exec rm {} \;
/usr/bin/find /media/Raspibackup/HomeAssistant/*.tar -mtime +30 -exec rm {} \;

Die Berechtigungen habe ich auch entsprechend gesetzt.
Starte ich das Script von Hand über die Konsole läuft es durch und kopiert die Backups auf das Netzlaufwerk.

Hat jemand eine Idee zu dem Fehler 127?? Bzw. hat jemand erfolgreich ein Shell-Script in HA eingebunden?
Ich habe mich schon dumm und dämlich gesucht im Internet und div. Sachen getestet, nur ich kriege den Fehler nicht weg.
Egal ob ich in der shell_commands.yaml wie im Internet nachzulesen, mal mit /bin/bash oder nur bash oder ohne, oder mit "", '' oder ohne um den Befehl, es läuft nicht.
Auch bei unterschiedlichen Versuchen mit der Pfad Angabe /config/… oder /homeassistant/.. usw, es läuft nicht und zum Teil krieg ich nicht mal einen Fehler im Log zurück.

Daher nochmal die Frage, hat jemand sowas in der Konstellation erfolgreich am laufen?
Wäre schön wenn jemand weiter helfen könnte.

LG,
Slice
 
Zuletzt bearbeitet:
Shell Script kann ich Dir nix zu sagen.
Aber ich frage mich, warum Du das Backup erst auf das lokale Laufwerk machst, um es dann auf ein Netzwerklaufwerk zu kopieren.
Warum lässt Du das Backup nicht sofort auf das Netzwerklaufwerk laufen und sparst Dir das ganze durcheinander mit Shell Script?
 
Hallo,
das mache ich aus dem Grund, damit ich eine doppelte Sicherung von den Backups habe. Einmal direkt in HA und einmal auf dem Windows Server.
Der Windows Server wird dann zusätzlich nochmal auf externe Festplatten gesichert, für den Fall der Fälle.
Lieber ein Backup mehr, als eins zu wenig.
Grüße,
Slice
 
Hab bisher nur so halb mitgelesen und stehe etwas auf dem Schlauch...

1) Die HA-eigene Sicherung läuft doch eh auf die lokale VM
2) Dazu wird noch eine HA-Sicherung auf eine WS-VM geschoben
3) Die WS-VM-"Inhalte" werden auch nochmal auf eine USB-Platte gesichert
4) Die Sicherung über den PVE-Host in Form von kompletten VMs wird garnicht genutzt, oder auch noch zusätzlich?

Ich mein, ich bin ja auch ein Freund von Backups, aber so ganz erschliesst sich mir das hier nicht... :unsure: Zudem hätte man doch ebenso die Möglichkeit, dass die Backups direkt auf ein Samba-Share laufen, dann könntest Du Dir das Theater direkt ersparen.

Was Dein Script angeht... in der Doku heisst es:
YAML:
# Example configuration.yaml entry
shell_command:
  restart_pow: touch ~/.pow/restart.txt
  call_remote: curl http://example.com/ping
  my_script: bash /config/shell/script.sh

Du hast dort stehen:
YAML:
shell_command:
  shell_copy_backup: /bin/bash /homeassistant/copy_homeassistant.sh

Versuch es bei Dir vielleicht auch einfach mal "nur" mit "bash" anstatt "/bin/bash"?
 
Hi,
1) genau, die HA eigene Sicherung legt die Backups lokal ab
2) das wäre das Ziel, diese lokale Sicherung auf das Netzlaufwerk von dem Windows Server zu kopieren
3) richtig, die Dateien von dem Windows Server werden auf eine USB Platte gesichert
4) in Proxmox wird auch die VM Sicherung verwendet
Das klingt jetzt vielleicht für den ein oder anderen doppelt gemoppelt, aber so habe ich genug Sicherung für den Fall der Fälle.

Ich habe alle Möglichkeiten in dem shell_command ausrobiert, mal mit /bin/bash und mal nur bash wie in der Doku beschrieben. Bringt leider nichts weil es nicht geht.

In der Zwischenzeit bin ich ein Stück weiter gekommen, so wie es aussieht läuft das Script wohl im Kontext von HA-Core.
Und da gibt es keinen Zugriff auf den Order "backup". Die einzelnen Container scheinen ziemlich voneinander abgeschottet zu sein.
 
Ich bin sicher auch ein Freund von Backup, aber wenn man ein Backup EXTERN macht, macht ein lokales Backup eigentlich keinen Sinn.
Wozu soll das lokale Backup nötig sein, wenn man ein externes Backup hat ?
Vor allem dann, wenn man von dem Externen Backup System nochmal ein Backup macht.
 
Hallo zusammen,

jeder sollte die Anzahl und die Art der Backups nach seinen Bedürfnissen und Erfahrungen machen.
Dazu werde ich auch keine weitere Antwort geben. Punkt!

Um hier eine Rückmeldung zu geben, schreib ich jetzt mal soweit die Ergebnisse.

Es ist tatsächlich so, das ich direkt keinen Zugriff über die Container Hinweg auf den besagten Ordner "backup" habe.
Man könnte versuchen den Order von einem Container in den anderen zu mounten, aber das war mir der Aufwand dann nicht wert.
Mein Plan B war noch über einen Task auf dem Windows Server per SSH das Backup zu kopieren.

Nach einem Hinweis auf dieses Tool:
https://github.com/jcwillox/hass-auto-backup
kann ich jetzt über eine Automatisierung ein lokales Backup und ein kopiertes auf meinen Share automatisch laufen lassen.
Wichtig ist hierbei das der Mount für die Kopie vom Backup in HA als Typ "Freigabe" eingerichet sein muss.

Das funktioniert im Testbetrieb und heute Nacht sollte das Backup dann regulär laufen.

Top Sache, aber das war sehr aufwendig für so eine simple Aufgabe eigentlich. Egal, wieder was dazu gelernt!
:wink:


Grüße,
Slice
 
Nach einem Hinweis auf dieses Tool:
https://github.com/jcwillox/hass-auto-backup
kann ich jetzt über eine Automatisierung ein lokales Backup und ein kopiertes auf meinen Share automatisch laufen lassen.
Wichtig ist hierbei das der Mount für die Kopie vom Backup in HA als Typ "Freigabe" eingerichet sein muss.
Ähm, nun ja. Nichts anderes hatten wir Dir hier gesagt. Außer das man dazu nicht unbedingt das Tool benötigt, aber ok.
Dein Satz
Jetzt zu meinem Problem. Ich habe div. Netzlaufwerke von meinem Windows Server verbunden und kann auch darauf zugreifen.
ließ mich vermuten, das Du längst ein Backup Verzeichnis eingebunden hattest, auf das HA dann zugreifen kann.
Aber ok. Du willst keine Tipps, wie man das Backup einfacher oder besser machen könnte, das akzeptiere ich.
Viel Glück dann noch.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
5.726
Beiträge
55.997
Mitglieder
5.629
Neuestes Mitglied
pingps
Zurück
Oben