Maison  >  Article  >  développement back-end  >  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
DDDoriginal
2024-10-21 06:57:02362parcourir

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
  • 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"
  • Modifier l'environnement au sein même de la commande :
PATH="$PATH;/path/to/sesu" && sesu test
  • En dernier recours (non recommandé) :
stdin,stdout,stderr = ssh.exec_command('sesu test', get_pty=True)

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!

Déclaration:
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