Maison > développement back-end > Tutoriel Python > Pourquoi certaines commandes Unix renvoient-elles l'erreur « introuvable » dans Paramiko Exec_Command de Python ?

Pourquoi certaines commandes Unix renvoient-elles l'erreur « introuvable » dans Paramiko Exec_Command de Python ?

DDD
Libérer: 2024-10-21 06:57:02
original
450 Les gens l'ont consulté

Why Do Some Unix Commands Return

Erreur "introuvable" avec les commandes Unix dans Paramiko de Python

Lors de la tentative d'exécution de la commande 'sesu' sur un serveur Unix à l'aide de Python Paramiko exec_command, les utilisateurs peuvent rencontrer le message d'erreur "sh: sesu: not found." Ce problème ne survient qu'avec certaines commandes, telles que « sesu », tandis que d'autres commandes, comme « ls », fonctionnent comme prévu.

Cette erreur provient d'un comportement par défaut dans SSHClient.exec_command, qui n'exécute pas le shell en mode "login" et n'alloue pas de pseudo terminal. Par conséquent, l'exécution de la commande peut différer d'une session SSH interactive, dans laquelle certains scripts de démarrage et variables d'environnement sont générés ou utilisés.

Solutions possibles

Les solutions suivantes sont recommandées par ordre de préférence :

  • Modifiez la commande pour préciser le chemin complet de l'exécutable :
/bin/sesu test
Copier après la connexion
  • Configurez les scripts de démarrage pour définir de manière cohérente le PATH :
  • Exécutez la commande explicitement via un shell de connexion :
bash --login -c "sesu test"
Copier après la connexion
  • Modifier l'environnement au sein même de la commande :
PATH="$PATH;/path/to/sesu" && sesu test
Copier après la connexion
  • En dernier recours (non recommandé) :
stdin,stdout,stderr = ssh.exec_command('sesu test', get_pty=True)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal