
Der Funktionsblock FS_SHELL führt ein oder mehrere entfernte Kommandos in einer interaktiven Shell aus.
Achtung: Systemkommandos können das entfernte System gefährden oder beschädigen. Ausserdem können bereits existierende Dateien ohne eine Warnung überschrieben werden.
Das Dateisystem muss vorher mittels FS_INIT initialisiert worden sein. Alle Operationen erfolgen dabei asynchron pro angelegtes Speichermedium.
Bei einer positiven Flanke wird das angegebene Kommando ausgeführt.
Definiert das Gerät, von wo aus auf welche Dateien zugegriffen werden soll. Das Gerät wird pro Projekt verwendet und kann im Kontextmenü unter Projekt Externer Speicher verwaltet werden.
Gibt den Pfad zum Verzeichnis auf dem Speichermedium an. Der Pfad entspricht dabei einem Unix-Dateipfad im UTF-8 Format, falls dieses unterstützt wird. Der Pfad wird wie folgt dargestellt:
Ordner/Unterordner
Das Verwenden eines Pfades ist optional. Wurde dieser gesetzt, so muss das wechseln zu diesem Verzeichnis erfolgreich sein, ansonsten wird der auszuführende Befehl nicht ausgeführt.
Definiert alle Befehle, die ausgeführt werden sollen. Alle Befehle müssen durch ein Zeilenende terminiert werden. Wie z. B.: "ls\n". Wird kein Zeilenende verwendet, wird der Befehl vermutlich nicht ausgeführt. Die Befehle werden nach der Rückmeldung vom Server zeilenweise ausgeführt.
Nach der Ausführung aller Befehle sollte am Ende ein "exit\n" gesendet werden, um die Verbindung sofort zu beenden und die Werte zurückzugeben. Danach sollte kein weiterer Befehl gesendet werden, da sonst der Ausgang ERROR auf TRUE gesetzt wird.
Hinweis: Falls die Verbindung unerwartet beendet wird und ein Befehl nicht gesendet wurde, wird der Ausgang ERROR auf TRUE gesetzt.
Definiert den Typ der Konsole (Pseudo-Terminal). Für manche Geräte ist dieser Parameter zwingend erforderlich. Beispiele: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" usw. Wird kein Wert definiert, so wird "vanilla" verwendet.
Der Wert "exec" führt die Anfrage via SSH-Befehl vom Betriebssystem aus. Dadurch werden modernere Methoden verwendet. Jedoch ist diese Methode etwas ineffizienter. Der Eingang ENV wird vor der Verbindung gesetzt, weshalb dieser möglicherweise ignoriert wird. Der Eingang SIZE wird bei dieser Methode ignoriert.
Falls zusätzliche SSH-Parameter übergeben werden müssen, können diese jeweils in einer neuen Zeile nach "exec" hinzugefügt werden. Die Parameter sind case-sensitiv und werden wie im folgenden Beispiel angegeben. Dieses Beispiel aktiviert den RSA-Algorithmus für ältere Geräte.
exec
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedAlgorithms=+ssh-rsa
Folgende Parameter stehen dabei zur Verfügung:
| SSH-Parameter für exec | Beispielwert |
|---|---|
| KexAlgorithms | +diffie-hellman-group1-sha1 |
| Ciphers | +aes128-cbc |
| HostKeyAlgorithms | +ssh-rsa |
| PubkeyAcceptedAlgorithms | +ssh-rsa |
| ConnectTimeout | 10 |
| ServerAliveInterval | 30 |
| ServerAliveCountMax | 3 |
Hinweis: Für weitere Details siehe die externe Dokumentation: https://linux.die.net/man/5/ssh_config (Englisch)
Definiert die aktiven Umgebungsvariablen. Um mehrere Variablen anzugeben, kann pro Zeile eine definiert werden. Beispiel:
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
Definiert die Größe des Terminals. Standardmässig wird diese in Zeichen angegeben, kann aber auch in Pixeln definiert werden. Z.B.: "80x25" oder "640x480px". Wurde kein Wert definiert, wird "80x25" verwendet.
Definiert ein Timeout zum Empfangen von Daten pro Befehl im Format T#. Wird kein Timeout definiert, so wird T#150ms verwendet. Ist dieser Wert nicht hoch genug, so werden vermutlich mehrere Befehle während der Datenausgabe ausgeführt.
Setzt ein Timeout im Format T# zur Ausführung aller Befehle. Nachdem dieses erreicht wurde wird die Verbindung beendet und den Wert zurückgegeben. Dabei wird ERROR auf TRUE gesetzt. Das Timeout wird nach dem Verbindungsaufbau und der Authentifizierung ausgewertet. Wurde der Eingang PTY auf "exec" gesetzt, so wird die Ausführungszeit auf den gesamten Zeitraum ausgewertet. Wird kein Timeout definiert, so wird T#300s verwendet.
Der Ausgang gibt bei Erfolg einen Impuls zurück, um die nächste Operation durchzuführen. Der Impuls erfolgt beim Beenden des Vorgangs, auch wenn ein Fehler aufgetreten ist.
Gibt die Rückgabe des Kommandos bei erfolgreicher Ausführung zurück. Der Wert wird für die spätere Verwendung gespeichert.
Hinweis: Beachten Sie, dass die Konsole die Ausgabe formatiert. Dadurch können auch Steuerzeichen oder binäre Daten enthalten sein.
Gibt die Rückgabe des Kommandos bei fehlerhafter Ausführung zurück. Bei SSH auch STDERR genannt. Der Wert wird für die spätere Verwendung gespeichert.
Hinweis: Beachten Sie, dass die Konsole die Ausgabe formatiert. Dadurch können auch Steuerzeichen oder binäre Daten enthalten sein.
Gibt im Fehlerfall einen Text mit einer Fehlermeldung zurück. Dieser ist FALSE, wenn kein Fehler aufgetreten ist. Der Zustand wird für die spätere Verwendung gespeichert.
Mögliche Ursachen: