Ich möchte eine Anwendung auf einem Remote-Computer mit Python Paramiko aufrufen; Diese Anwendung wartet, bis Sie eine bestimmte Zeichenfolge eingeben und dann erfolgreich ist. Wie kann ich den angeforderten String über eine SSH-Verbindung an ihn senden?Wie automatische Ansagen über SSH-Verbindung in Python zu beantworten
Die Anwendung Aufruf ist wie:
./app --init
This option will delete the database and recreate all files.
OLD DATA (IF ANY) WILL BE LOST!
This option must be used just on one of your servers.
Running it on any one of the servers will delete the other server's data, too.
If you are sure, type the following sentence and press ENTER:
I KNOW THAT THIS OPTION DESTROYS EVERYTHING; DO IT ANYWAY.
Dann sollte ich I KNOW THAT THIS OPTION DESTROYS EVERYTHING; DO IT ANYWAY.
ein und drücken Sie ENTER
fortzusetzen.
Ich habe diesen Code auf die Remote-Host verbinden:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, username=usrname, password=passwd, compress=True)
I self.sshlink.exec_command('cd app_addr;./app --init')
versucht; es hat nichts getan.
Wenn Sie sich fragen, wie dies programmatisch zu tun, dann die Standardeingabe, wenn Umleitung nicht funktioniert, Sie könnten mit [erwarten] (http : //expect.sourceforge.net/). Sie müssen sehen, ob Expect als Paket für Ihr Betriebssystem verfügbar ist, was auch immer das ist. – ghoti
Wie benutzt man Paramiko, und was nicht funktioniert? –
@SergeBallesta, bitte überprüfen Sie meine Bearbeitung! –