Functieblok FS_SHELL

De functieblok FS_SHELL voert één of meerdere externe opdrachten uit in een interactieve shell.

Let Op: Systeemopdrachten kunnen het externe systeem bedreigen of beschadigen. Bovendien kunnen bestaande bestanden zonder waarschuwing worden overschreven.

Het bestandssysteem moet eerst zijn geïnitialiseerd met FS_INIT. Alle operaties vinden asynchroon plaats per aangemaakt opslagmedium.

Ingang RUN

Bij een positieve flank wordt de opgegeven opdracht uitgevoerd.

Ingang DEV

Definieert het apparaat waaruit toegang tot bestanden moet worden verkregen. Het apparaat wordt per project gebruikt en kan in het contextmenu onder Project Extern opslag beheerd worden.

Ingang PATH

Geeft het pad naar de map op het opslagmedium aan. Het pad komt overeen met een Unix-bestandspad in UTF-8-formaat, indien dit wordt ondersteund. Het pad wordt als volgt weergegeven:

Map/Submap

Het gebruik van een pad is optioneel. Als deze is ingesteld, moet het wisselen naar deze map succesvol zijn, anders wordt de uit te voeren opdracht niet uitgevoerd.

Ingang CMD

Definieert alle opdrachten die moeten worden uitgevoerd. Alle opdrachten moeten worden beëindigd met een regel-einde. Bijvoorbeeld: "ls\n". Als geen regel-einde wordt gebruikt, wordt de opdracht waarschijnlijk niet uitgevoerd. De opdrachten worden na het bericht van de server per regel uitgevoerd.

Na het uitvoeren van alle opdrachten moet aan het einde een "exit\n" worden verzonden om de verbinding onmiddellijk te beëindigen en de waarden terug te geven. Daarna mag geen verdere opdracht meer worden verzonden, anders wordt de uitgang ERROR op TRUE gezet.

Opmerking: Als de verbinding onverwacht wordt beëindigd en een opdracht niet is verzonden, wordt de uitgang ERROR op TRUE gezet.

Ingang PTY

Definieert het type console (Pseudo-Terminal). Voor sommige apparaten is deze parameter verplicht. Voorbeelden: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" enzovoort. Als geen waarde is gedefinieerd, wordt "vanilla" gebruikt.

De waarde "exec" voert de aanvraag uit via een SSH-opdracht van het besturingssysteem. Hierdoor worden modernere methoden gebruikt. Deze methode is echter iets inefficiënter. De ingang ENV wordt voor de verbinding ingesteld, waardoor deze mogelijk wordt genegeerd. De ingang SIZE wordt bij deze methode genegeerd.

Als extra SSH-parameters moeten worden doorgegeven, kunnen deze in een nieuwe regel na "exec" worden toegevoegd. De parameters zijn hoofdlettergevoelig en worden zoals in het volgende voorbeeld aangegeven. Dit voorbeeld activeert de RSA-algoritme voor oudere apparaten.

exec
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedAlgorithms=+ssh-rsa

De volgende parameters zijn beschikbaar:

SSH-parameters voor exec Voorbeeldwaarde
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
ConnectTimeout 10
ServerAliveInterval 30
ServerAliveCountMax 3

Opmerking: Voor meer details zie de externe documentatie: https://linux.die.net/man/5/ssh_config (Engels)

Ingang ENV

Definieert de actieve omgevingsvariabelen. Om meerdere variabelen aan te geven, kan er per regel één worden gedefinieerd. Voorbeeld:

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

Ingang SIZE

Definieert de grootte van het terminal. Standaard wordt deze in tekens aangegeven, maar kan ook in pixels worden gedefinieerd. Bijvoorbeeld: "80x25" of "640x480px". Als geen waarde is gedefinieerd, wordt "80x25" gebruikt.

Ingang RECV_PT

Definieert een timeout voor het ontvangen van gegevens per opdracht in het formaat T#. Als geen timeout is gedefinieerd, wordt T#150ms gebruikt. Is deze waarde niet hoog genoeg, dan worden waarschijnlijk meerdere opdrachten tijdens de gegevensuitvoer uitgevoerd.

Ingang TIMEOUT

Stelt een timeout in het formaat T# voor het uitvoeren van alle opdrachten. Nadat deze is bereikt, wordt de verbinding beëindigd en de waarde teruggegeven. ERROR wordt op TRUE gezet. De timeout wordt na het opbouwen van de verbinding en de authenticatie geëvalueerd. Als de ingang PTY is ingesteld op "exec", wordt de uitvoeringstijd over de gehele periode geëvalueerd. Als geen timeout is gedefinieerd, wordt T#300s gebruikt.

Uitgang DONE

De uitgang geeft bij succes een impuls terug om de volgende operatie uit te voeren. De impuls vindt plaats bij het beëindigen van de taak, zelfs als er een fout is opgetreden.

Uitgang RETURN

Geeft het resultaat van de opdracht bij succesvolle uitvoering terug. De waarde wordt voor latere gebruik bewaard.

Opmerking: Let erop dat de console de uitvoer formateert. Hierdoor kunnen ook stuurtekens of binaire gegevens aanwezig zijn.

Uitgang RETERR

Geeft het resultaat van de opdracht bij foutieve uitvoering terug. Bij SSH ook STDERR genoemd. De waarde wordt voor latere gebruik bewaard.

Opmerking: Let erop dat de console de uitvoer formateert. Hierdoor kunnen ook stuurtekens of binaire gegevens aanwezig zijn.

Uitgang ERROR

Geeft in geval van fout een tekst met een foutmelding terug. Deze is FALSE, als geen fout is opgetreden. De status wordt voor latere gebruik bewaard.

Mogelijke oorzaken:

  • De dienst van het opslagmedium werd niet gestart.
  • Het opslagmedium werd niet geïnitialiseerd.
  • De inloggegevens zijn ongeldig.
  • De externe server kon niet worden bereikt.
  • Het opslagmedium bestaat niet.
  • Het opgegeven pad is ongeldig.
  • Er kan niet op het opslagmedium worden geschreven.
  • Geen opslagruimte meer beschikbaar op de opslag of de opslag is schrijfbeveiligd.
  • De verbinding werd onverwacht beëindigd voordat alle opdrachten konden worden verzonden.
  • Het gedefinieerde timeout is bereikt.

Zie Ook