Konsole: Unterschied zwischen den Versionen
Lh (Diskussion | Beiträge) |
Lh (Diskussion | Beiträge) |
||
Zeile 204: | Zeile 204: | ||
<br />Die Befehlssyntax "port all state set "{port_list}" {OFF=0|ON=1}" setzt eine Liste von Ports auf den Zustand ON=1 oder OFF=0. | <br />Die Befehlssyntax "port all state set "{port_list}" {OFF=0|ON=1}" setzt eine Liste von Ports auf den Zustand ON=1 oder OFF=0. | ||
− | ='''SSH | + | ='''SSH'''= |
<br />Das Gerät unterstützt SSH-2 Verbindungen entweder mit Public Key Authentifizierung oder Benutzernamen und Passwort. Der "login" muss für SSH aktiviert sein. Benutzer und Passwörter können lokal gespeichert sein, oder über einen Radius Server abgefragt werden. Möchte man SSH in einem Terminal verwenden, sollte Activate echo eingeschaltet sein. | <br />Das Gerät unterstützt SSH-2 Verbindungen entweder mit Public Key Authentifizierung oder Benutzernamen und Passwort. Der "login" muss für SSH aktiviert sein. Benutzer und Passwörter können lokal gespeichert sein, oder über einen Radius Server abgefragt werden. Möchte man SSH in einem Terminal verwenden, sollte Activate echo eingeschaltet sein. | ||
Version vom 27. März 2024, 09:16 Uhr
Für die Konfiguration und Steuerung des Gerätes existiert ein Befehlssatz von Kommandos mit Parametern, die über eine Konsole eingegeben werden können. Die Konsole steht über SSH oder Telnet, oder bei Geräten mit RS232 Anschluss über ein serielles Terminal zur Verfügung. Es muss nicht unbedingt Telnet genutzt werden, im Raw Mode reicht eine einfache TCP/IP Verbindung, um Befehle schicken zu können. Die Kommunikation lässt sich auch automatisiert durchführen (z.B. über Skriptsprachen). Die Konsoleneigenschaften werden über das Webinterface konfiguriert.
Login
Ein SSH / Telnet login kann mit und ohne Passwort konfiguriert werden:
Befehlssatz
Es existieren mehrere Kommando-Ebenen. Folgende Kommandos sind von jeder Ebene
benutzbar:
back | Eine Befehlsebene zurückgehen |
help | Die Befehle der aktuellen Ebene |
help all | Alle Befehle |
logout | Ausloggen (nur wenn Login erforderlich) |
quit | Konsole beenden |
Der Befehl "help" gibt alle Kommandos der aktuellen Ebene zurück. Wird "help" von der obersten Ebene aufgerufen, wird z.B. auch die Zeile "http [subtopics]" angezeigt.
Dies bedeutet, dass es für "http" eine weitere Ebene gibt. Mit dem Kommando "http help" lassen sich nun alle Befehle unterhalb von "http" anzeigen. Alternativ kann man mit dem Aufruf "http" diese Ebene auswählen, und "help" zeigt alle Befehle der gewählten Ebene. Das Kommando "back" selektiert wieder die oberste Ebene. Es ist möglich "help" an einer beliebigen Position zu benutzen: "http passwd help" stellt z.B. alle Kommandos dar, die den Präfix "http passwd" besitzen. Eine komplette Liste aller möglichen Geräte-Befehle finden Sie im Kapitel "Console Cmd".
Parameter
Werden für die Kommandos Parameter erwartet, lässt sich der Parameter numerisch oder als Konstante übergeben. Bekommt man als Hilfe z.B. die folgende Zeile:
http server set {http_both=0|https_only=1|http_only=2}
so sind die folgenden Anweisungspaare jeweils äquivalent:
http server set https_only
http server set 1
bzw.
http server set https_both
http server set 0
Numerische Parameter können mit verschiedenen Basen eingegeben werden. Hier ein
Beispiel für den dezimalen Wert 11:
Basis | Eingabe |
dezimal (10) | 11 |
hexadezimal (16) | 0xb |
oktal (8) | 013 |
binär (2) | 0b1011 |
Bitfeld-Parameter
Manche Parameter können mehrere Werte gleichzeitig annehmen. Im folgenden Beispiel können alle Werte zwischen 0 und 5 gesetzt werden. In der Hilfe ist dies daran erkennbar, dass die Werte nicht durch das "|" Zeichen, sondern durch Kommata getrennt sind.
"{EVT_SYSLOG=0,EVT_SNMP=1,EVT_EMAIL=2,EVT_SMS=3,EVT_GSMEMAIL=4,EVT_BEEPER=5}"
Um in einem Befehl EVT_SYSLOG und EVT_EMAIL zu setzen, kann man z.B. folgende Syntax benutzen:
>extsensor 1 2 0 events type set "EVT_SYSLOG,EVT_EMAIL"
OK.
oder numerisch
>extsensor 1 2 0 events type set "0,2"
OK.
Zusätzlich kann man mit "ALLSET" alle Werte setzen, oder mit der Syntax "#7f1a" eine beliebiges Bitmuster als Hexzahl kodieren.
Rückgabewerte
Ist ein Befehl unbekannt oder ein Parameter fehlerhaft, so erfolgt am Anfang der Zeile die Ausgabe "ERR." mit einer nachfolgenden Fehlerbeschreibung. Erfolgreiche Anweisungen ohne speziellen Rückgabewert werden mit "OK." quittiert. Alle anderen Rückgabewerte werden innerhalb einer einzelnen Zeile ausgegeben. Es gibt davon zwei
Ausnahmen:
- Manche Konfigurationsänderungen, die TCP/IP und UDP betreffen, werden erst nach einem Neustart übernommen. Diese Parameter werden zweizeilig ausgegeben. In der ersten Zeile ist der aktuelle Wert, in der zweiten Zeile der Wert nach dem Neustart. In der "Cmd Overview" Tabelle ist dies mit "Note 2" gekennzeichnet.
- Einige Konfigurationen (wie z.B. die vergebenen IPv6-Adressen) haben mehrere Werte, die sich dynamisch ändern können. Dies ist mit "Note 3" in der "Cmd Overview" Tabelle markiert.
Numerische Rückgaben
Bei Parametern, die Konstanten unterstützen, werden diese Konstanten auch als Rückgabewerte ausgegeben. Um besser mit Skriptsprachen arbeiten zu können, kann es einfacher sein, nur mit numerischen Rückgaben zu arbeiten. Mit dem Befehl "vt100 numeric set ON"
werden nur noch numerische Werte angezeigt.
Telnet
Ist die Konfiguration nicht im "Raw Mode", so wird mit Hilfe der IAC Befehle versucht, die Telnet Konfiguration zwischen Client und Server auszutauschen. Gelingt dies nicht, so sind die Editierfunktionen nicht aktiv, und die "Activate echo" Option bestimmt, ob die zum Telnet Server gesendeten Zeichen zurückgeschickt werden. Normalerweise beginnt der Client die IAC Negotiation. Ist dies beim Client nicht der Fall, sollte in der Gerätekonfiguration "Active negotiation" eingeschaltet werden.
Raw Mode
Möchte man die Konsole nur automatisiert nutzen, so kann es von Vorteil sein, die Konfiguration "Raw mode" auf "yes" und "Activate echo" auf "no" zu stellen. Es gibt dann keine störende Interaktion mit den Editor-Funktionen und es müssen die gesendeten Zeichen nicht gefiltert werden, um die Rückgabewerte zu verarbeiten.
Ist in der Konsole "Raw mode" aktiviert aber nicht im benutzten Telnet Client, dann können die am Anfang übermittelten IAC Befehle als störende Zeichen in Kommandozeile auftauchen (teilweise unsichtbar).
Editierfunktionen
Die folgenden Editierfunktionen sind verfügbar, wenn das Terminal VT100 unterstützt, und der RAW-Modus nicht eingeschaltet ist. Eingegebene Zeichen werden an der Cursorposition eingefügt.
links, rechts | bewegt Cursor nach links oder rechts |
Pos1, Ende | setzt den Cursor auf Anfang oder Ende der Zeile |
Entf | löscht Zeichen unter dem Cursor |
Rück | löscht Zeichen links vom Cursor |
rauf, runter | zeigt ältere Eingabezeilen (History) |
Tab, Strg-Tab | vervollständigt das Wort am Cursor |
Strg-C | löscht die Zeile |
Dieses Kapitel ist allgemein für alle Gude Geräte gehalten. Je nach Gerätetyp sind Ports oder bestimmte Sensoren nicht verfügbar.
Beispiele von Befehlen
a) externe Sensoren
>extsensor all show
E=1,L="7106",0="21.3°C",1="35.1%",3="1013hPa",4="5.2°C",5="16.0°C"
E=2,L="7102",0="21.2°C",1="35.4%",4="5.3°C",5="15.9°C"
Der Befehl listet jeweils einen angeschlossenen externen Sensor pro Zeile, und nach dem Labelnamen kommen die einzelnen Messwerte durch Kommata getrennt. Die Ziffer vor dem Gleichheitszeichen entspricht dem Feld Index aus der Externer Sensor Tabelle.
>extsensor 1 0 value show
Zeigt Temperatur des Sensors an Port 1
b) Line-Sensoren
Für Geräte mit 230V Eingangsmessung (Metered PDU).
>linesensor all "0,1,2,3,12" show
L=1,L="Power Port",0="13000Wh",1="0W",2="225V",3="0A",12="998218s"
L=2,L="Power Port",0="13000Wh",1="0W",2="223V",3="0A",12="996199s"
Dieses Kommando gibt alle Line-Sensorwerte in jeweils einer Zeile aus. Als Parameter wird eine Liste aller Felder (entsprechend der Energie Sensor Tabelle) übergeben. In diesem Beispiel sind dies die Felder Absolute Active Energy (0), Power Active (1), Voltage (2), Current (3) und Reset Time (12).
>linesensor 1 "0,1,2,3,12"
show
>linesensor 1 1 show
Diese Varianten geben die Sensorwerte der Feldliste oder eines Sensors an Line 1.
Bei Geräten mit Overvoltage Protection wird bei dem "linesensor all" Kommando der Zustand der Protection mit ausgegeben ("OVP=x"). Eine "1" bedeutet Ok, eine "0" ein Ausfall der Protection.
c) Port-Sensoren für Geräte mit 230V Ausgangsmessung (Outlet-Metered PDUs)
Für Geräte mit 230V Ausgangsmessung (Outlet-Metered PDU).
>portsensor all "0,1,2,3,12" show
P=1,L="Power Port",0="13000Wh",1="0W",2="225V",3="0A",12="998218s"
P=2,L="Power Port",0="13000Wh",1="0W",2="225V",3="0A",12="996199s"
...
P=12,L="Power Port",0="13000Wh",1="0W",2="225V",3="0A",12="998218s"
Dieses Kommando gibt alle Port-Sensorwerte in jeweils einer Zeile aus. Als Parameter wird eine Liste aller Felder (entsprechend der Energie Sensor Tabelle) übergeben. In diesem Beispiel sind dies die Felder Absolute Active Energy (0), Power Active (1), Voltage (2), Current (3) und Reset Time (12).
>portsensor 2 "0,1,2,3,12"
show
>portsensor 2 1 show
Diese Varianten geben die Sensorwerte der Feldliste oder eines Sensors an Outlet Port 2.
Die folgenden Beispiele beziehen sich auf Gude Geräte die schaltbare Ports haben.
d) Port-Relais anzeigen
>port all state 1 show
P1=ON,P2=OFF,P3=ON,P4=OFF,P5=OFF,P6=OFF,P7=OFF,P8=ON
Der Befehl "port all state {MODE0=0|MODE1=1|MODE2=2} show" gibt den Schaltzustand aller Relais in 3 möglichen Formaten zurück.
e) Port-Relais schalten
>port all state set "1,2,12" 1
OK.
Die Befehlssyntax "port all state set "{port_list}" {OFF=0|ON=1}" setzt eine Liste von Ports auf den Zustand ON=1 oder OFF=0.
SSH
Das Gerät unterstützt SSH-2 Verbindungen entweder mit Public Key Authentifizierung oder Benutzernamen und Passwort. Der "login" muss für SSH aktiviert sein. Benutzer und Passwörter können lokal gespeichert sein, oder über einen Radius Server abgefragt werden. Möchte man SSH in einem Terminal verwenden, sollte Activate echo eingeschaltet sein.
Public Keys
Es werden folgende Public Keys akzeptiert:
Schlüssel-Typ | Länge |
RSA | 2048, 4096 |
ECDSA | 256, 384 |
Generierung mit PuTTYgen
Generierte Schlüssel können z.B. direkt aus PuTTYgen kopiert,
und direkt in das Configuration - Console Eingabefeld eingefügt werden. Public Keys werden im SSH2 oder OpenSSH Format angenommen.
Generierung mit ssh-keygen
Das Tool ssh-keygen wird meist mit Linux und Windows ausgeliefert um SSH Keys zu erzeugen. Hier ein Beispiel um einen ECDSA 384 Schlüssel zu erzeugen.
ssh-keygen -t ecdsa -b 384 -f ssh.key
In der Datei ssh.pub ist dann der private Key, der Inhalt von ssh.key.pub wird in das Feld "Upload SSH public key:" eingefügt.