ich den einfachen Python-Skript mit pexpect erstellt, erstellt einem spwan Prozess mitNicht in der Lage Datei mit ssh auf einem anderen Server mit Python pexpect auf Linux finden
CurrentCommand = "ssh " + serverRootUserName + "@" + serverHostName
child = pexpect.spawn(CurrentCommand)
Jetzt habe ich einen Befehl wie ls-a leite oder „finden/opt/Lizenz/-name‚* .xml‘“ Code
child.run(mycommand)
es funktioniert gut von PyCharm wenn läuft, aber wenn vom Terminal läuft es ist es nicht funktioniert ist nicht in der Lage eine beliebige Datei zu finden, Ich denke, dass es in mein lokales System schaut.
Kann mir jemand etwas vorschlagen. Danke
ich dies bereits verwendet, aber es ist. nicht funktioniert child.sendline ('mycommand') gefolgt von child.expect ('prompt:') –
Sie sollten * dann * send line erwarten: Im Grunde müssen Sie warten, bis sich der ssh verbindet, bevor Sie versuchen, mehr Daten zu übertragen. Ich bin überrascht, dass die SSH nicht nach einem Benutzernamen und Passwort fragen würde (es sei denn, Sie verwenden SSH-Schlüssel, aber Sie wäre besser, verwenden Sie das Argument -i, um Ihren Schlüssel auf der ursprünglichen SSH-Verbindung zu spezifizieren Der Prozess, den Sie gestartet haben - es ist mehr für die Ausführung von Skripten. – Jmons
Ich habe nicht den vollständigen Code hier geschrieben Ich habe den Befehl child = pexpect.spawn (CurrentCommand) und das Passwort zur Verfügung gestellt, So habe ich jetzt das Kind Objekt, das ist SSH zu einem anderen Server jetzt, wenn ich vom Unix-Terminal child.sendline (find/opt/license/-name '* .xml'), gefolgt von child.expect ('prompt:') läuft es zeigt nicht die Daten, aber läuft von Pycharm funktioniert, Es sieht so aus, als würde es in meinen lokalen Server schauen, von wo aus ich die Python-Skriptdatei ausgeführt habe, zB [email protected] mypyhton.py –