Update 15.04.2007: Zwei Änderungen zur Originalversion vom 03.04. weiter oben: Erstens wurde ein Notfall-Reboot neu eingefügt, zweitens wird der Rest des Skripts nun im Vordergrund ausgeführt. Ich habe beim Testen erlebt, daß ansonsten eine TTY-Ausgabe, z.B. von prepare_fwupgrade, den Hintergrund-Job stoppt, weil solche Jobs eigentlich nicht auf das kontrollierende Terminal schreiben oder davon lesen dürfen.
Update 20.06.2007: Mini-Korrektur in Zeile 1: reboot -f; braucht in dieser einzeiligen Schreibweise des Klammer-Ausdrucks ein Semikolon am Ende.
Code:
# Bevor wir anfangen, ein Hintergrundbefehl: notfalls in 10 min die Box
# zwangsweise neu starten, das müßte für Download + FW-Update reichen.
{ sleep 600 ; reboot -f; } &
{
# Unnötige Dienste stoppen, aber websrv und dsld weiter laufen lassen
prepare_fwupgrade start_from_internet
# FW-Image herunterladen und direkt nach "/" entpacken
wget -q -O - http://mein.server.xy/mein.image 2> /dev/null | tar -C / -x
# Restliche Dienste stoppen
prepare_fwupgrade end
# Installation vorbereiten
/var/install
# Installation initialisieren
/var/post_install
# Box neu starten
reboot
}
Man beachte das "&" am Ende der ersten Zeile, um den Job im Hintergrund auszuführen.
Anmerkung zum Schluß: Das Ganze funktioniert nicht nur mit einer traditionellen Telnet- oder SSH-Konsole. Man kann es notfalls genausogut mit der Rudi-Shell machen.