Aller au contenu

Commande SSH

n8n : SSHToutes les offres1 entrée · 1 sortie

Exécute une commande sur un serveur ou un groupe de serveurs via SSH.

Éléments reçusCommande SSHÉléments produits

Fonctionnement

Une tâche par serveur cible, exécutée par le worker sur une connexion SSH vérifiée (clé d'hôte approuvée). L'exécution du workflow est suspendue pendant les tâches : aucun worker n'est immobilisé. Script et variables passent par l'entrée standard, échappés.

Paramètres

ParamètreTypeDétail
Serveur ou groupeobligatoireserveur ou groupeServeurs de l'environnement de l'exécution uniquement. Un groupe est résolu au démarrage de l'étape.
Mode d'exécutionchoix« Programme et arguments » : aucune interprétation par un shell (pas de redirection, de variable ni de joker). Valeurs : Script interprété par le shell, Programme et arguments (sans shell).
Shellselon les autres paramètreschoixValeurs : bash, sh (POSIX).
Scriptobligatoire · selon les autres paramètresscriptTexte fixe, jamais interprété comme expression Orkyvo. Arguments : $1, $2… ; variables : $NOM.
Arguments du script ($1, $2…)selon les autres paramètresliste—
Programmeobligatoire · selon les autres paramètrestexte—
Argumentsselon les autres paramètreslisteUn argument par ligne, transmis tel quel.
Répertoire de travailtexteFacultatif. Transmis littéralement (échappé).
Variables transmisesclé-valeurSeules ces valeurs sont envoyées au serveur, échappées : utilisez {{ $env.NOM }} ou {{ $json.champ }} sans risque d'interprétation par le shell.
Délai maximal (secondes)nombre3600 s au plus. Au-delà, le processus distant est arrêté et l'arrêt vérifié.
Codes de sortie réussistexteEx. 0 ; 0,1 ; 0-2.
Taille maximale des sorties (Ko)nombrePar flux (stdout, stderr), 1024 Ko au plus ; au-delà la sortie est tronquée et signalée.
Exécuter avec sudo (non interactif)oui / nonRefusé si le serveur n'autorise pas les opérations privilégiées.
En cas d'échec sur un serveurchoixValeurs : Échouer le bloc (après tous les serveurs), Continuer : le statut figure dans le résultat.
Serveurs traités en parallèle (groupe)nombre50 au plus.

Données reçues et renvoyées

  • EntréeListe d'éléments ; le premier élément alimente les expressions (variables, arguments, répertoire).
  • SortieUn élément par serveur : { serverId, serverName, environmentId, status, exitCode, stdout, stderr, startedAt, finishedAt, durationMs, timedOut, cancelled, cancelConfirmed, outputTruncated, error, taskId }. status : SUCCEEDED, FAILED, TIMED_OUT, CANCELLED, INDETERMINATE (connexion perdue : la commande a pu s'exécuter), REFUSED, EXPIRED.

Erreurs

Serveur d'un autre environnement, transport incompatible, opération non autorisée sur le serveur, sudo non autorisé, clé d'hôte modifiée, authentification refusée, délai dépassé, code de sortie non réussi (selon la stratégie).

À savoir. Une commande dont le résultat est inconnu (connexion perdue, worker interrompu) n'est jamais relancée automatiquement : elle est marquée « indéterminée ».

À savoir. Annulation : interruption du processus distant puis vérification ; cancelConfirmed indique si l'arrêt a été constaté.

Exemple

Paramètres d'un bloc prêt à l'emploi. Dans l'éditeur, l'onglet Aide du bloc applique cet exemple en un clic.

Paramètres de l'exemple (JSON)Ouvrir l'éditeur
{
  "mode": "shell",
  "shell": "bash",
  "script": "set -e\ndf -P / | awk 'NR==2{print $5}'\nsystemctl is-active nginx",
  "timeoutSeconds": "30",
  "successCodes": "0",
  "onError": "continue"
}

Voir aussi