Heim > Backend-Entwicklung > Python-Tutorial > Warum geben einige Unix-Befehle den Fehler „nicht gefunden' in Pythons Paramiko Exec_Command zurück?

Warum geben einige Unix-Befehle den Fehler „nicht gefunden' in Pythons Paramiko Exec_Command zurück?

DDD
Freigeben: 2024-10-21 06:57:02
Original
450 Leute haben es durchsucht

Why Do Some Unix Commands Return

Fehler „nicht gefunden“ bei Unix-Befehlen in Pythons Paramiko

Beim Versuch, den Befehl „sesu“ auf einem Unix-Server mit Pythons auszuführen Paramiko exec_command, Benutzer können auf die Fehlermeldung „sh: sesu: nicht gefunden“ stoßen. Dieses Problem tritt nur bei bestimmten Befehlen wie „sesu“ auf, während andere Befehle wie „ls“ wie vorgesehen funktionieren.

Dieser Fehler ist auf ein Standardverhalten in SSHClient.exec_command zurückzuführen, das das nicht ausführt Shell im „Login“-Modus und weist kein Pseudo-Terminal zu. Folglich kann sich die Befehlsausführung von einer interaktiven SSH-Sitzung unterscheiden, bei der bestimmte Startskripts und Umgebungsvariablen bezogen oder verwendet werden.

Mögliche Lösungen

Die folgenden Lösungen werden empfohlen in der Reihenfolge der Präferenz:

  • Ändern Sie den Befehl, um den vollständigen Pfad zur ausführbaren Datei anzugeben:
/bin/sesu test
Nach dem Login kopieren
  • Konfigurieren Sie Startskripte, um den PFAD konsistent festzulegen:
  • Führen Sie den Befehl explizit über eine Anmeldeshell aus:
bash --login -c "sesu test"
Nach dem Login kopieren
  • Ändern Sie die Umgebung innerhalb des Befehls selbst:
PATH="$PATH;/path/to/sesu" && sesu test
Nach dem Login kopieren
  • Als letzten Ausweg (nicht empfohlen):
stdin,stdout,stderr = ssh.exec_command('sesu test', get_pty=True)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum geben einige Unix-Befehle den Fehler „nicht gefunden' in Pythons Paramiko Exec_Command zurück?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage