Aller au contenu

Commande système

n8n : Execute CommandÉdition autohébergée1 entrée · 1 sortie

Exécute une commande shell sur la machine du worker (édition autohébergée).

Éléments reçusCommande systèmeÉléments produits

Édition autohébergée. Ce bloc agit sur la machine qui exécute les workflows. Il est absent de l'offre en ligne, activé par défaut dans l'édition autohébergée, et l'administrateur de la plateforme peut le désactiver. Il ne travaille que dans le dossier qui lui est réservé, avec le compte du worker.

Fonctionnement

Bloc de l'édition autohébergée, désactivable par l'administrateur. La commande s'exécute avec le compte du worker, dans son dossier de travail, avec un environnement réduit (PATH, HOME, LANG et vos variables) : aucun secret de la plateforme n'est transmis. Sorties limitées à 1 Mo chacune.

Paramètres

ParamètreTypeDétail
CommandeobligatoirescriptTexte fixe exécuté par /bin/sh. Les valeurs dynamiques passent par les variables ci-dessous ($NOM), jamais insérées dans le texte.
Variables transmisesclé-valeur—
ExécutionchoixValeurs : Une fois par élément, Une seule fois.
Dossier d'exécutiontexteRelatif au dossier de travail du worker.
Délai maximal (secondes)nombre600 s au plus ; au-delà, le processus est arrêté.
Échouer si le code de sortie n'est pas 0oui / non—

Données reçues et renvoyées

  • EntréeListe d'éléments.
  • Sortie{ exitCode, stdout, stderr, durationMs } par élément (ou une seule fois).

Erreurs

Bloc indisponible ou désactivé, code de sortie non nul (si « Échouer »), délai dépassé (processus arrêté), nom de variable invalide.

À savoir. N'insérez jamais une valeur reçue dans le texte de la commande : passez-la par une variable, que le shell ne réinterprète pas.

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
{
  "command": "wc -l \"$FICHIER\"",
  "env": [
    {
      "id": "e1",
      "key": "FICHIER",
      "value": "entrees/{{ $json.name }}"
    }
  ],
  "mode": "each",
  "timeoutSeconds": "30"
}

Voir aussi