Script bei jedem Systemupdate automatisch ausführen?

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
loculill
Beiträge: 5
Registriert: 25.04.2021, 13:16
System: Alternative CCU (auf Basis OCCU)

Script bei jedem Systemupdate automatisch ausführen?

Beitrag von loculill » 25.04.2021, 13:42

Ich konnte hierzu leider nichts finden, daher stell ich mal ganz blöd die Frage: Ist es möglich, nach/mit jedem Systemupdate ein Script auszuführen, welches nach einem Systemupdate meine persönlichen Systemtweaks wieder übernimmt? Ich habe mir bereits ein Script geschrieben, welches ich aktuell aber nach jedem Update manuell per ssh auf dem System ausführen muss. Das sorgt natürlich für Update-Missmut.

Hintergrund: Ich habe mein System an mehreren Stellen modifiziert, um die (für mich störenden) LEDs alle abzuschalten. Diese Modifizierungen beinhalten eine Custom /boot/extraconfig.txt wie auch ein paar Tweaks an der /etc/init.d/S01InitHosts. Ich möchte hier ausdrücklich nicht die Diskussion über den Sinn oder Unsinn von bunt blinkenden LED-Shows führen. Mein Script:

Code: Alles auswählen

#!/bin/sh

/bin/echo "Remounting root & boot as Read/Write"

/bin/mount -o remount,rw /
/bin/mount -o remount,rw /boot/

/bin/echo "Disabling Ethernet LEDs by creating Extraconfig"
/bin/echo "dtparam=eth_led0=3" > /boot/extraconfig.txt
/bin/echo "dtparam=eth_led1=14" >> /boot/extraconfig.txt

#/bin/echo "Disabling HMIP-LEDs by creating disableLED-File"
#/bin/touch /etc/config/disableLED

/bin/echo "Updating Initfile to set all RPi-LEDs to 'none'-default"
/bin/sed -i 's/HM_LED_GREEN_MODE1=.*/HM_LED_GREEN_MODE1="none"/' /etc/init.d/S01InitHost
/bin/sed -i 's/HM_LED_GREEN_MODE2=.*/HM_LED_GREEN_MODE2="none"/' /etc/init.d/S01InitHost
/bin/sed -i 's/HM_LED_RED_MODE1=.*/HM_LED_RED_MODE1="none"/' /etc/init.d/S01InitHost
/bin/sed -i 's/HM_LED_RED_MODE2=.*/HM_LED_RED_MODE2="none"/' /etc/init.d/S01InitHost
/bin/sed -i 's/HM_LED_YELLOW_MODE1=.*/HM_LED_YELLOW_MODE1="none"/' /etc/init.d/S01InitHost
/bin/sed -i 's/HM_LED_YELLOW_MODE2=.*/HM_LED_YELLOW_MODE2="none"/' /etc/init.d/S01InitHost

/bin/echo "Rebooting to apply changes"
/sbin/reboot
Mittelfristig bin ich auch am überlegen, in das System noch ein USV-Modul einzubauen, dafür müsste ich dann evtl. auch weitere Anpassungen am System machen, um Stromausfall zu erkennen und die CCU gegebenenfalls rechtzeitig herunter zu fahren bevor der Strom ausfällt.

Also: Gibt es da einen Weg, bei jedem Systemupdate automatisch ein eigenes Script triggern zu lassen, welches wie-auch-immer-geartete Änderungen erneut anwendet?

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Script bei jedem Systemupdate automatisch ausführen?

Beitrag von jp112sdl » 25.04.2021, 20:36

Ich hab mir für sowas als kleines "CCUstomize" Addon gebaut, das letztlich in /etc/config/rc.d ein Skript ablegt, das beim Starten ausgeführt wird.
Bildschirmfoto 2021-04-25 um 20.34.33.png
Alternativ könntest du dein Anpassungen auch in einem Shell-Skript in /usr/local/addons ablegen und dieses über ein WebUI Programm beim Starten der CCU ausführen lassen... Programm anlegen ohne Bedingungen, im DANN Skript ausführen : system.Exec("/usr/local/addons/meinTool.sh");

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

loculill
Beiträge: 5
Registriert: 25.04.2021, 13:16
System: Alternative CCU (auf Basis OCCU)

Re: Script bei jedem Systemupdate automatisch ausführen?

Beitrag von loculill » 25.04.2021, 22:34

Ja, gut. zu dem CCUstomize-Addon finde ich jetzt nicht mehr zu. Aber wenn ich das recht verstehe, ist das auch kein Unterschied zum verlinken eines Scriptes in /usr/local/etc/rc.local.

Das Script bei jedem Reboot ausführen ist jetzt auch nicht so zielführend, es remounted ja root & boot als read/write, das will man vielleicht nicht ständig so gemountet haben.

Wobei da evtl. doch ein sinnvoller Ansatz bei rausspringen könnte: Das Script einfach immer prüfen lassen, ob /boot/extraconfig.txt existiert. Sofern nicht, die Modifikationen ausführen und neu starten. Risiko dabei ist halt, wenn irgendwann /boot/extraconfig.txt persistent wird. Aber das könnte ich natürlich auch mitigieren, indem ich im root einfach eine Datei anlege (z.B. /etc/ledpatched), die garantiert nie persistent werden dürfte. Hm... muss ich mal weiter nachforschen.

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Script bei jedem Systemupdate automatisch ausführen?

Beitrag von jp112sdl » 25.04.2021, 22:39

loculill hat geschrieben:
25.04.2021, 22:34
Das Script bei jedem Reboot ausführen ist jetzt auch nicht so zielführend, es remounted ja root & boot als read/write, das will man vielleicht nicht ständig so gemountet haben.
Ähm...
Wem tut es weh, wenn dein Skript beim jedem Boot die ro-Mounts mal kurz rw mounted und anschließend ro ?
Ist kein Stück Seife... da nutzt sich nichts ab ;)
loculill hat geschrieben:
25.04.2021, 22:34
Das Script einfach immer prüfen lassen, ob /boot/extraconfig.txt existiert. Sofern nicht, die Modifikationen ausführen und neu starten.
Jo... Ich prüfe bei meinem Skript ab, ob die jeweilige Änderung schon drin ist... wenn ja, dann mache nix.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

loculill
Beiträge: 5
Registriert: 25.04.2021, 13:16
System: Alternative CCU (auf Basis OCCU)

Re: Script bei jedem Systemupdate automatisch ausführen?

Beitrag von loculill » 25.04.2021, 23:33

jp112sdl hat geschrieben:
25.04.2021, 22:39
Ähm...
Wem tut es weh, wenn dein Skript beim jedem Boot die ro-Mounts mal kurz rw mounted und anschließend ro ?
Ist kein Stück Seife... da nutzt sich nichts ab ;)
Ja, gut. Aber dann darf ich halt keinen reboot am Ende vom Script machen. Und den Reboot brauchts, damit die Änderungen entsprechend greifen. Aber gut, ich denke, ich werde das wie vorgeschlagen mit einer Kanarienvogel-Datei machen. Hoffentlich gibts dann in nächster Zeit viele Updates, um das zu testen und ggf. zu debuggen.

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Script bei jedem Systemupdate automatisch ausführen?

Beitrag von jp112sdl » 26.04.2021, 06:04

loculill hat geschrieben:
25.04.2021, 23:33
Aber dann darf ich halt keinen reboot am Ende vom Script machen. Und den Reboot brauchts, damit die Änderungen entsprechend greifen
Auch das sollte kein Problem sein, indem du dir in einem Flag merkst, ob durch dein Skript Änderungen vorgenommen wurden.
Wenn nicht (weil die Änderungen schon drin sind) -> kein Reboot.
loculill hat geschrieben:
25.04.2021, 23:33
Hoffentlich gibts dann in nächster Zeit viele Updates, um das zu testen und ggf. zu debuggen.
Es gibt von RaspberryMatic täglich einen neuen Build inkl. neuer Versionsnummer.

Du kannst aber auch jedes Mal die selbe Firmware aufspielen; es endet ja immer darin, dass du wieder ein ursprüngliches Dateisystem bekommst.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „RaspberryMatic“