Blok funkcji FS_SHELL

Blok funkcji FS_SHELL wykonuje jedno lub więcej zdalnych poleceń w interaktywnej powłoce.

Uwaga: Polecenia systemowe mogą zagrozić lub uszkodzić zdalne system. Ponadto istniejące pliki mogą zostać bez ostrzeżenia nadpisane.

System plików musi być wcześniej zainicjowany za pomocą FS_INIT. Wszystkie operacje są wykonywane asynchronicznie dla każdego utworzonego urządzenia magazynującego.

Wejście RUN

Na pozytywnej krawędzi wykonuje podane polecenie.

Wejście DEV

Definiuje urządzenie, z którego należy uzyskać dostęp do plików. Urządzenie jest używane w projekcie i może być zarządzane w menu kontekstowym pod Projekt Zewnętrzny magazyn.

Wejście PATH

Podaje ścieżkę do katalogu na urządzeniu magazynującym. Ścieżka odpowiada ścieżce pliku Unix w formacie UTF-8, jeśli jest to obsługiwane. Ścieżka przedstawia się następująco:

Folder/Subfolder

Używanie ścieżki jest opcjonalne. Jeśli została ustawiona, należy pomyślnie przejść do tego katalogu, w przeciwnym razie polecenie do wykonania nie zostanie wykonane.

Wejście CMD

Definiuje wszystkie polecenia, które mają być wykonane. Wszystkie polecenia muszą być zakończone znakiem końca linii. Na przykład: "ls\n". Jeśli nie użyto znaku końca linii, polecenie prawdopodobnie nie zostanie wykonane. Polecenia są wykonywane liniowo po otrzymaniu odpowiedzi od serwera.

Po wykonaniu wszystkich poleceń należy na końcu wysłać "exit\n", aby natychmiast zakończyć połączenie i zwrócić wartości. Następnie nie należy wysyłać żadnego dalszego polecenia, w przeciwnym razie wyjście ERROR zostanie ustawione na TRUE.

Uwaga: Jeśli połączenie zostanie nieoczekiwanie zakończone i polecenie nie zostało wysłane, wyjście ERROR zostanie ustawione na TRUE.

Wejście PTY

Definiuje typ konsoli (Pseudo-Terminal). Dla niektórych urządzeń ten parametr jest obowiązkowy. Przykłady: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" itp. Jeśli nie zdefiniowano żadnej wartości, używany jest "vanilla".

Wartość "exec" wykonuje zapytanie za pomocą polecenia SSH systemu operacyjnego. Dzięki temu używane są nowocześniejsze metody. Jednak ta metoda jest nieco mniej wydajna. Wejście ENV jest ustawiane przed połączeniem, dlatego może być ignorowane. Wejście SIZE jest w tej metodzie ignorowane.

Jeśli należy przekazać dodatkowe parametry SSH, można je dodawać w nowej linii po "exec". Parametry są wrażliwe na wielkość liter i podawane jak w poniższym przykładzie. Ten przykład aktywuje algorytm RSA dla starszych urządzeń.

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

Dostępne są następujące parametry:

Parametry SSH dla exec Wartość przykładowa
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
ConnectTimeout 10
ServerAliveInterval 30
ServerAliveCountMax 3

Uwaga: Dla dalszych szczegółów zobacz zewnętrzną dokumentację: https://linux.die.net/man/5/ssh_config (Angielski)

Wejście ENV

Definiuje aktywne zmienne środowiskowe. Aby zdefiniować kilka zmiennych, można określić jedną na każdej linii. Przykład:

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

Wejście SIZE

Definiuje rozmiar terminala. Domyślnie podawany w znakach, ale można go zdefiniować również w pikselach. Na przykład: "80x25" lub "640x480px". Jeśli nie zdefiniowano żadnej wartości, używany jest "80x25".

Wejście RECV_PT

Definiuje czas oczekiwania na otrzymanie danych dla każdego polecenia w formacie T#. Jeśli nie zdefiniowano czasu oczekiwania, używany jest T#150ms. Jeśli ta wartość jest za niska, prawdopodobnie kilka poleceń zostanie wykonanych podczas wyświetlania danych.

Wejście TIMEOUT

Ustawia czas oczekiwania w formacie T# do wykonania wszystkich poleceń. Po osiągnięciu tego czasu połączenie zostaje zakończone i zwrócona wartość. Wtedy ERROR jest ustawione na TRUE. Czas oczekiwania jest oceniany po nawiązaniu połączenia i uwierzytelnieniu. Jeśli wejście PTY zostało ustawione na "exec", czas wykonania jest oceniany dla całego okresu. Jeśli nie zdefiniowano czasu oczekiwania, używany jest T#300s.

Wyjście DONE

Na wyjściu zwracany jest impuls w przypadku sukcesu, aby przeprowadzić następną operację. Impuls występuje po zakończeniu procesu, nawet jeśli wystąpił błąd.

Wyjście RETURN

Zwraca wynik polecenia po pomyślnym wykonaniu. Wartość jest zapisywana do późniejszego użycia.

Uwaga: Uwzględnij, że konsola formatuje wyjście. Dlatego mogą zawierać również znaki sterujące lub dane binarne.

Wyjście RETERR

Zwraca wynik polecenia w przypadku błędnego wykonania. W SSH nazywany również STDERR. Wartość jest zapisywana do późniejszego użycia.

Uwaga: Uwzględnij, że konsola formatuje wyjście. Dlatego mogą zawierać również znaki sterujące lub dane binarne.

Wyjście ERROR

Zwraca w przypadku błędu tekst z komunikatem o błędzie. Jest to FALSE, jeśli nie wystąpił żaden błąd. Stan jest zapisywany do późniejszego użycia.

Możliwe przyczyny:

  • Usługa urządzenia magazynującego nie została uruchomiona.
  • Magazyn nie został zainicjowany.
  • Dane logowania są nieważne.
  • Zdalny serwer nie mógł zostać osiągnięty.
  • Urządzenie magazynujące nie istnieje.
  • Podana ścieżka jest nieważna.
  • Do urządzenia magazynującego nie można zapisać.
  • Brak miejsca na magazynie lub magazyn jest chroniony przed zapisem.
  • Połączenie zostało nieoczekiwanie zakończone, zanim wszystkie polecenia mogły zostać wysłane.
  • Zdefiniowany czas oczekiwania został osiągnięty.

Zobacz także