Wie behebe ich den Fehler „Befehl nicht gefunden' in Paramiko's exec_command für Unix-Befehle?

Patricia Arquette
Freigeben: 2024-10-21 07:00:03
Original
442 Leute haben es durchsucht

How to Resolve

Unix-Befehle schlagen mit dem Fehler „Befehl nicht gefunden“ fehl, wenn Paramiko's exec_command verwendet wird

In Szenarien, in denen Unix-Befehle wie „sesu“ mit „ „Befehl nicht gefunden“-Fehler bei der Ausführung über Pythons Paramiko exec_command kann die Ursache im Standardverhalten von SSHClient.exec_command liegen.

Grundlegendes zum Standardverhalten

SSHClient. exec_command arbeitet normalerweise nicht im „Login“-Modus und weist keine Pseudoterminals für Sitzungen zu. Folglich werden möglicherweise bestimmte Startskripts umgangen, die während interaktiver SSH-Sitzungen aufgerufen werden. Diese Diskrepanz kann dazu führen, dass Umgebungsvariablen und Skriptverzweigungen von regulären interaktiven Sitzungen abweichen.

Behebung des Problems

Um dieses Problem zu beheben, ziehen Sie die folgenden Lösungen in Betracht:

  1. Geben Sie den vollständigen Pfad zum Befehl an: Anstatt sich auf PATH zu verlassen, verwenden Sie den vollständigen Pfad zum Befehl, z. B. „/bin/sesu test.“
  2. Startskripte ändern: Stellen Sie sicher, dass Startskripte den PATH sowohl für interaktive als auch für nicht interaktive Sitzungen konsistent festlegen.
  3. Führen Sie den Befehl über die Login-Shell aus: Verwenden Sie das „- -login“-Schalter, um den Befehl explizit über eine Login-Shell auszuführen, z. B. „bash --login -c „sesu test“.“
  4. Ändern Sie die Befehlsumgebung:Ändern Sie die Umgebung darin den Befehl selbst, um sicherzustellen, dass wesentliche Variablen korrekt eingestellt sind.
  5. Pseudo-Terminal-Zuweisung erzwingen (nicht empfohlen): Setzen Sie den Parameter „get_pty“ auf True, um dem Exec-Kanal ein Pseudo-Terminal zuzuweisen . Diese Methode kann jedoch unbeabsichtigte Folgen haben.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Befehl nicht gefunden' in Paramiko's exec_command für Unix-Befehle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!