Dieses Szenario beschreibt, wie Sie an der Kommandozeile das Gerät so konfigurieren, dass es in einem festgelegten Intervall Firmware und Konfiguration aktualisiert. Das Update der Firmware erfolgt dabei vor dem Update der Konfiguration. Der Download von Firmware und Konfiguration geschieht von einem externen Server (siehe Datei-Download von einem TFTP- oder HTTP(S)-Server) über die Befehle 'LoadFirmware' und 'LoadConfig' unter Verwendung dynamischer Dateinamen. Die Zeitplanung realisieren Sie mittels Cron-Jobs.
-
Geben Sie die URL an, von dem der Befehl 'LoadFirmware' die Firmware lädt,
wenn keine anderen Parameter vorliegen. Für das Laden der Firmware von einem HTTP-Server
z. B. verwenden Sie einen Befehl ähnlich dem folgenden:
set /Setup/Automatisches-Laden/Netzwerk/Firmware/URL http://www.mycompany.de/firmware/
Der Dateiname wird später durch den Cron-Job definiert.
-
Stellen Sie die Bedingung für das Laden der Firmware so ein, dass nur eine neuere als
die im Gerät vorhandene Firmware geladen wird:
set /Setup/Automatisches-Laden/Netzwerk/Firmware/Bedingung wenn-neuer
-
Geben Sie den Pfad an, von dem der Befehl 'LoadConfig' eine Konfiguration
lädt, wenn keine anderen Parameter vorliegen. Für das Laden der Konfiguration von einem
HTTP-Server z. B. verwenden Sie einen Befehl ähnlich dem folgenden:
set /Setup/Automatisches-Laden/Netzwerk/Firmware/URL http://www.mycompany.de/configuration
Der Dateiname wird später durch den Cron-Job definiert.
-
Stellen Sie die Bedingung für das Laden der Konfiguration so ein, dass nur eine andere
als die im Gerät vorhandene Konfiguration geladen wird:
set /Setup/Automatisches-Laden/Netzwerk/Konfiguration/Bedingung wenn-unterschiedlich
-
Erstellen Sie einen Cron-Job, der regelmäßig alle 10 Minuten das Kommando
'LoadFirmware' ausführt:
cd /Setup/Config/Cron-Tabelle
set 1 * * * 10 * * * * LoadFirmware\ $__SERIALNO-Device.upx
Im obigen Beispiel muss die Firmware auf dem HTTP-Server also in der Form
<SerialNumber>-Device.upx vorliegen, z. B.
000018100060-Device.upx.
Anmerkung: Im cron-Befehl LoadFirmware\ $__SERIALNO-Device.upx ist das
Leerzeichen zwischen dem Load-Kommando und der Umgebungsvariablen mit einem Backslash
geschützt. Eine denkbare alternative Schreibweise, bei welcher der komplette Befehl mit
Anführungszeichen eingeschlossen wird, führt zu einem Fehler. LCOS behandelt
Umgebungsvariablen in Anführungszeichen wie normaler Text; die Umsetzung in den Inhalt
der Variablen entfällt.
-
Erstellen Sie einen Cron-Job, der regelmäßig alle 10 Minuten das Kommando
'LoadConfig' ausführt:
set 2 * * * 10 * * * * LoadScript\ $__SERIALNO-$__FWVERSION.lcs
Im obigen Beispiel muss das Konfigurationsskript auf dem HTTP-Server also in der Form
<SerialNumber>-<FirmwareVersion>.lcs vorliegen, z. B.
000018100060-8.84.lcf.
Fertig! Bei dieser Konfiguration lädt das Gerät in jedem Fall zuerst die aktuelle
Firmware.
Wenn das Gerät – nach dem Hochladen der aktuellen Firmware und des aktuellen
Konfigurationsskriptes (z. B. für Version 8.84) auf den HTTP-Server – zuerst den
Befehl 'LoadScript' ausführt, enthält die Umgebungsvariable
'__FWVERSION' zu diesem Zeitpunkt den Wert der vorangegangenen Firmware
(z. B. '8.80'). Der Befehl LoadScript\
$__SERIALNO-$__FWVERSION.lcs findet zu diesem Zeitpunkt also kein passendes
Konfigurationsskript. Anschließend führt das Gerät den Befehl LoadFirmware
000018100060-Device.upx aus; nach dem Neustart enthält die Umgebungsvariable
'__FWVERSION' den Wert '8.84'. Der Befehl LoadScript\
$__SERIALNO-$__FWVERSION.lcs findet dann ein passendes Skript zum Updaten der
Konfiguration.