Blocco Funzionale FS_SHELL

Il blocco funzionale FS_SHELL esegue uno o più comandi remoti in una shell interattiva.

Attenzione: I comandi di sistema possono danneggiare o compromettere il sistema remoto. Inoltre, i file esistenti possono essere sovrascritti senza alcun avviso.

Il filesystem deve essere stato precedentemente inizializzato tramite FS_INIT. Tutte le operazioni vengono eseguite in modo asincrono per ogni dispositivo di archiviazione configurato.

Ingresso RUN

Su un fronte positivo viene eseguito il comando specificato.

Ingresso DEV

Definisce il dispositivo da cui accedere ai file. Il dispositivo è utilizzato per progetto e può essere gestito nel menu contestuale sotto Progetto Memoria Esterna.

Ingresso PATH

Specifica il percorso alla directory sul dispositivo di archiviazione. Il percorso corrisponde a un percorso di file Unix in formato UTF-8, se supportato. Il percorso è rappresentato come segue:

Directory/Sottodirectory

L'uso di un percorso è opzionale. Se impostato, il cambio directory deve essere riuscito, altrimenti il comando da eseguire non verrà eseguito.

Ingresso CMD

Definisce tutti i comandi da eseguire. Ogni comando deve essere terminato da un fine riga. Ad esempio: "ls\n". Se non viene utilizzato un fine riga, il comando probabilmente non verrà eseguito. I comandi vengono eseguiti linea per linea dopo la risposta del server.

Dopo l'esecuzione di tutti i comandi, dovrebbe essere inviato un "exit\n" alla fine per terminare immediatamente la connessione e restituire i valori. Successivamente, non dovrebbero essere inviati ulteriori comandi, altrimenti l'uscita ERROR verrà impostata su TRUE.

Nota: Se la connessione viene terminata inaspettatamente e un comando non è stato inviato, l'uscita ERROR verrà impostata su TRUE.

Ingresso PTY

Definisce il tipo di console (Pseudo-Terminal). Per alcuni dispositivi, questo parametro è obbligatorio. Esempi: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" ecc. Se non viene definito alcun valore, verrà utilizzato "vanilla".

Il valore "exec" esegue la richiesta tramite comando SSH del sistema operativo. Questo utilizza metodi più moderni, ma è leggermente meno efficiente. L'ingresso ENV viene impostato prima della connessione, quindi potrebbe essere ignorato. L'ingresso SIZE viene ignorato con questo metodo.

Se devono essere passati ulteriori parametri SSH, questi possono essere aggiunti in una nuova riga dopo "exec". I parametri sono case-sensitive e vengono specificati come nell'esempio seguente. Questo esempio abilita l'algoritmo RSA per dispositivi più vecchi.

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

I seguenti parametri sono disponibili:

Parametri SSH per exec Valore di esempio
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
ConnectTimeout 10
ServerAliveInterval 30
ServerAliveCountMax 3

Nota: Per ulteriori dettagli, consultare la documentazione esterna: https://linux.die.net/man/5/ssh_config (Inglese)

Ingresso ENV

Definisce le variabili d'ambiente attive. Per specificare più variabili, è possibile definirne una per riga. Esempio:

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

Ingresso SIZE

Definisce la dimensione del terminale. Per impostazione predefinita, questa viene specificata in caratteri, ma può anche essere definita in pixel. Ad esempio: "80x25" o "640x480px". Se non viene definito alcun valore, verrà utilizzato "80x25".

Ingresso RECV_PT

Definisce un timeout per ricevere dati per comando nel formato T#. Se non viene definito alcun timeout, verrà utilizzato T#150ms. Se questo valore non è sufficientemente alto, probabilmente più comandi verranno eseguiti durante l'output dei dati.

Ingresso TIMEOUT

Imposta un timeout nel formato T# per l'esecuzione di tutti i comandi. Dopo aver raggiunto questo, la connessione verrà terminata e il valore restituito. ERROR verrà impostato su TRUE. Il timeout viene valutato dopo l'avvio della connessione e l'autenticazione. Se l'ingresso PTY è stato impostato su "exec", il tempo di esecuzione verrà valutato per tutto il periodo. Se non viene definito alcun timeout, verrà utilizzato T#300s.

Uscita DONE

L'uscita restituisce un impulso in caso di successo per eseguire la successiva operazione. L'impulso avviene al termine del processo, anche se si è verificato un errore.

Uscita RETURN

Restituisce il ritorno del comando in caso di esecuzione riuscita. Il valore viene salvato per l'uso successivo.

Nota: Si noti che la console formatta l'output. Di conseguenza, potrebbero essere inclusi caratteri di controllo o dati binari.

Uscita RETERR

Restituisce il ritorno del comando in caso di esecuzione errata. Con SSH anche chiamato STDERR. Il valore viene salvato per l'uso successivo.

Nota: Si noti che la console formatta l'output. Di conseguenza, potrebbero essere inclusi caratteri di controllo o dati binari.

Uscita ERROR

In caso di errore, restituisce un testo con un messaggio di errore. Questo è FALSE se non si è verificato alcun errore. Lo stato viene salvato per l'uso successivo.

Possibili cause:

  • Il servizio del dispositivo di archiviazione non è stato avviato.
  • La memoria non è stata inizializzata.
  • Le credenziali di accesso non sono valide.
  • Il server remoto non può essere raggiunto.
  • Il dispositivo di archiviazione non esiste.
  • Il percorso specificato non è valido.
  • Non è possibile scrivere sul dispositivo di archiviazione.
  • Nessuno spazio su disco disponibile o la memoria è in sola lettura.
  • La connessione è stata interrotta inaspettatamente prima che tutti i comandi potessero essere inviati.
  • Il timeout definito è stato raggiunto.

Vedi anche