Funkcióblokk FS_SHELL

A Funkcióblokk FS_SHELL egy vagy több távoli parancsot hajt végre egy interaktív shellben.

Figyelem: A rendszerparancsok károsíthatják vagy megrongálhatják a távoli rendszert. Továbbá, létező fájlok felülírhatók egy figyelmeztetés nélkül.

A fájlrendszert előzőleg az FS_INIT segítségével kell inicializálni. Az összes művelet aszinkron módon történik minden létrehozott tárolóeszközre.

RUN bemenet

Egy pozitív él esetén a megadott parancs fut le.

DEV bemenet

Azon az eszközt határozza meg, amelyről a fájlokhoz való hozzáférés történik. Az eszköz projektként van használva és kezelhető a kontextusmenü alatt Projekt Külső tároló.

PATH bemenet

A tárolóeszközön található mappa elérési útját adja meg. Az elérési út egy UTF-8 formátumú Unix-fájlelérési úthoz hasonló, ha ezt támogatja. Az elérési út a következőképpen jelenik meg:

Mappa/Almappa

A path használata opcionális. Ha beállítva van, akkor sikeresen váltani kell erre a mappára, különben a végrehajtandó parancs nem fut le.

CMD bemenet

Azokat a parancsokat határozza meg, amelyek végrehajtásra kerülnek. Minden parancs sorvégjelzést (newline) kell, hogy tartalmazzon. Például: "ls\n". Ha nincs sorvégjelzés, a parancs valószínűleg nem fut le. A parancsokat a szerver visszajelzése után soronként hajtják végre.

Az összes parancs végrehajtása után a végén egy "exit\n" küldése ajánlott, hogy az összeköttetés azonnal lezáruljon és a értékeket visszaadja. Ekkor nem szabad további parancsot küldeni, mert akkor az ERROR kimenet TRUE-ra áll.

Megjegyzés: Ha az összeköttetés váratlanul megszakad és egy parancs nem került küldésre, akkor az ERROR kimenet TRUE-ra áll.

PTY bemenet

A konzol típust (Pseudo-Terminal) határozza meg. Néhány eszköz számára ez a paraméter kötelező. Példák: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" stb. Ha nincs érték megadva, akkor a "vanilla" használatos.

A "exec" érték SSH-parancs segítségével hajtja végre a lekérdezést az operációs rendszerben. Ezzel modernabb módszerek használhatók. Ez a módszer azonban valamivel kevésbé hatékony. Az ENV bemenetet a kapcsolódás előtt állítják be, ezért ez esetleg figyelmen kívül lesz hagyva. A SIZE bemenetet ebben a módszerben nem veszik figyelembe.

Ha további SSH-paramétereket át kell adni, akkor ezek egy új sorban hozzáadhatók az "exec"-hoz. A paraméterek nagy- és kisbetűre érzékenyek és a következő példában megadott módon adhatók meg. Ez a példa engedélyezi az RSA-algoritmust régi eszközök számára.

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

A következő paraméterek állnak rendelkezésre:

SSH-paraméterek exec-hez Példaérték
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
ConnectTimeout 10
ServerAliveInterval 30
ServerAliveCountMax 3

Megjegyzés: További részletekért lásd a külső dokumentációt: https://linux.die.net/man/5/ssh_config (Angol)

ENV bemenet

Aktív környezeti változókat határoz meg. Több változó megadásához soronként lehet definiálni egyet. Példa:

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

SIZE bemenet

A terminál méretét határozza meg. Alapértelmezés szerint karakterekben adható meg, de pixelekben is definiálható. Például: "80x25" vagy "640x480px". Ha nincs érték megadva, akkor a "80x25" használatos.

RECV_PT bemenet

Egy időtartamot határoz meg az adatok fogadásához minden parancshoz T# formátumban. Ha nincs időtartam megadva, akkor a T#150ms használatos. Ha ez az érték nem elég nagy, akkor valószínűleg több parancs fut le az adatok kiírása közben.

TIMEOUT bemenet

Egy időtartamot állít be T# formátumban az összes parancs végrehajtásához. Amikor ezt eléri, az összeköttetés lezárul és visszaadja az értéket. Ekkor az ERROR TRUE-ra áll. Az időtartam a kapcsolódás és az hitelesítés után értékelődik ki. Ha a PTY bemenetet "exec"-ra állították, akkor a végrehajtási idő az egész időszakra vonatkozik. Ha nincs időtartam megadva, akkor a T#300s használatos.

DONE kimenet

A kimenet siker esetén egy impulzust ad vissza, hogy az következő művelet végrehajtására. Az impuls a folyamat befejezésekor történik, még akkor is, ha hiba történt.

RETURN kimenet

A parancs visszatérési értékét adja vissza sikeres végrehajtás esetén. Az érték későbbi használatra tárolódik.

Megjegyzés: Vegyék figyelembe, hogy a konzol formázza az outputot. Ezzel vezérlőkarakterek vagy bináris adatok is tartalmazhatók.

RETER kimenet

A parancs visszatérési értékét adja vissza hibás végrehajtás esetén. SSH-nél STDERR-nek is nevezik. Az érték későbbi használatra tárolódik.

Megjegyzés: Vegyék figyelembe, hogy a konzol formázza az outputot. Ezzel vezérlőkarakterek vagy bináris adatok is tartalmazhatók.

ERROR kimenet

Hiba esetén egy szöveget ad vissza egy hibajelzéssel. Ez FALSE, ha nincs hiba történt. Az állapot későbbi használatra tárolódik.

Lehetséges okok:

  • A tárolóeszköz szolgáltatása nem indult el.
  • A tárolót nem inicializálták.
  • A bejelentkezési adatok érvénytelenek.
  • A távoli szerver nem érhető el.
  • A tárolóeszköz nem létezik.
  • Az megadott elérési út érvénytelen.
  • A tárolóeszközhöz nem írható.
  • Nincs több hely a tárolón vagy az olvasható.
  • Az összeköttetés váratlanul megszakadt, mielőtt az összes parancs elküldhető lett volna.
  • Elérték a meghatározott időtartamot.

Lásd is