2017-06-05 2 views
0

Ich versuche, eine Funktion zu erstellen, die eine Verbindung zu einer Maschine von einer anderen Maschine über Minicom herstellt. Nach dem Verbinden mit Minicom sollte Enter gedrückt werden, um Befehle an die von minicom angeschlossene Maschine zu senden. Mein Python-Code ist wie folgt:senden Enter-Taste auf Python Paramiko ssh

Kann mir jemand sagen, wie kann ich die Eingabetaste richtig senden?

Antwort

0

können Sie versuchen '\r\n' für den Return-Schlüssel, aber ich denke, es gibt auch eine exec_command Methodenaufruf, der für den Return-Key nicht benötigen würde. Etwas wie.

shell.exec_command('minicom free -o') 

source

0

Normalerweise, wenn Sie Befehle in paramiko auszuführen versucht haben, um eine Schale nicht aufrufen und kann ssh.exec_command(...) einfach anrufen. Wenn der Befehl, den Sie ausführen möchten, von der Umgebung abhängt, die Sie beim Start einer Shell erhalten, müssen Sie explizit die Methode invoke_shell() aufrufen.

Wenn Sie in Paramiko invoke_shell() verwenden, müssen Sie die Zeilenbeendigungszeichen senden, die die bestimmte Shell erwartet. Wenn die Maschine, auf die Sie zugreifen möchten, bash als Standard-Shell hat, müssen Sie nach jedem Befehl ein Newline-Zeichen (d. H. '\n') senden. Zum Beispiel:

shell.send('ls\n') 

statt

shell.send('ls') 

Wenn Sie einen älteren Windows-Rechner sind angeschlossen hat, müssen Sie sowohl einen Wagenrücklauf und eine neue Zeile (dh '\r\n') für den Befehl senden zu sein verarbeitet.