Skip to main content

Unix Shell

Unix Shell | Sybot Documentation

UNIX SHELL

  • Task Type: ssh

Descrizione

Il Task Unix Shell è un componente di amministrazione di sistema estremamente versatile che consente al Workflow di eseguire comandi su un server remoto o sulla macchina locale (modalità Default).

È uno strumento completo per l’automazione IT, che permette di eseguire script, gestire file, controllare lo stato dei servizi, installare pacchetti e svolgere qualsiasi altra operazione disponibile da una riga di comando.

Configurazione

La configurazione del Task definisce i dettagli della connessione (se prevista) e il comando da eseguire. I campi possono essere valorizzati manualmente o tramite parametri e variabili del workflow.

Connessione al Server

  • Modalità connessione: definisce l’origine delle credenziali e il tipo di esecuzione. Può assumere tre modalità operative:
  • Default: i comandi vengono eseguiti sulla macchina locale, senza connessione SSH.
  • Manuale: consente l’inserimento manuale dei parametri di connessione.
  • Environment: utilizza un ambiente di connessione preconfigurato. In questa modalità viene visualizzato un menu che elenca le connessioni disponibili in base al ruolo associato al Workflow.
  • Altri campi (solo per connessione remota):
  • Indirizzo IP: indirizzo IP del server remoto.
  • Hostname: nome host del server remoto.
  • Utente: nome utente utilizzato per stabilire la connessione SSH.
  • Password: password associata all'utente di connessione.
  • Porta: porta utilizzata per la connessione SSH (il valore predefinito è 22).

Esegui comando come altro utente

Attivando questa checkbox, è possibile eseguire la ricerca con un utente diverso da quello utilizzato per la connessione SSH.

  • Utente: nome dell'utente con cui verrà eseguito il comando.
  • Password: password dell’utente utilizzato per l’esecuzione del comando.

Tipologia di comando

Questa opzione permette di scegliere la modalità di esecuzione del Task:

  • Connessione: in questa modalità, il Task si limita a stabilire una connessione SSH con il server remoto per verificare che sia raggiungibile e che le credenziali siano corrette. Non esegue alcun comando. È utile come primo passo di un Workflow per assicurarsi che un server sia online prima di procedere.
  • Comando: è un'area di testo dove si possono inserire uno o più comandi shell da eseguire sul server remoto.

Parametri di Output

Una volta che il servizio esterno ha risposto alla chiamata, il Task espone i seguenti parametri di output, che sono cruciali per elaborare il risultato della richiesta:

  • result: Contiene l'output standard (stdout) dei comandi eseguiti. Se i comandi producono un risultato testuale, questo verrà catturato in questo parametro.
  • resultJson: rappresenta il risultato dell’esecuzione del task in formato JSON, includendo informazioni generali, configurazioni e dettagli sull’esecuzione.
  • exitStatus: Restituisce il codice di uscita dell'ultimo comando eseguito. Un valore di 0 indica tipicamente un'esecuzione avvenuta con successo, mentre valori diversi da zero segnalano un errore.

Esempio parametro resultJson

{
"id": 19240,
"name": "Unix Shell",
"type": "ssh",
"type_name": "Unix Shell",
"type_description": "Connessione SSH",
"config": {
"operation": "command",
"connection": {
"ip": "",
"port": "",
"user": "",
"hostname": "",
"password": "",
"use_password": "N",
"connection_mode": "default",
"hidden_task_pwd": "0",
"env_connection_name": "---"
},
"output_links": [
{
"to": "[TASK 1977_19297_60]",
"from": "[TASK 1977_19240_7]",
"text": "Condizione 1",
"color": "green",
"points": [...],
"toPort": "left3",
"fromPort": "port_1977_19240_1",
"isTraversed": true
}
]
},
"run_info": {
"run_id": 1486675,
"status": "Completed",
"run_result": "Success",
"cmd_text": "echo '#>Declare variables.x<#'",
"result_text": "0",
"start_datetime": "2026-04-07 14:34:41",
"end_datetime": "2026-04-07 14:34:41",
"duration": 0
},
"output_parameters": {
"exitStatus": "0"
}
}

Note Importanti

  • L'utente utilizzato per la connessione (o l'utente "run as") deve avere i permessi necessari per eseguire i comandi specificati.
  • È possibile concatenare più comandi utilizzando gli operatori della shell standard, come && (esegue il secondo comando solo se il primo ha successo) o ; (esegue il secondo comando indipendentemente dall'esito del primo).
  • Il task stabilisce una connessione SSH con il server remoto ed esegue i comandi configurati. Se si utilizza l’autenticazione tramite chiavi SSH, è necessario che la chiave pubblica sia registrata sul server remoto. Se l’opzione “Esegui comando come altro utente” è abilitata, il controllo viene eseguito con un utente diverso da quello della connessione SSH principale.