2017-06-13 13 views
2

Ich versuche ein Python-Skript auszuführen, das eine Verbindung mit SSH herstellt und weiterhin Code auf diesem Server ausführt. Ich kann die Verbindung zum Server mit meiner ersten Zeile erhalten:Python-Skript über SSH ausführen

cmd = 'ssh [email protected]'  
os.system(cmd) 

Aber jeden Code folgenden warten, bis ich von SSH-Verbindung unterbrochen auszuführen. Wie führe ich weiterhin Code innerhalb eines Skripts aus?

Idealerweise verbinde ich mich mit dem SSH-Server, erstelle ein paar Dateien und kopiere sie auf meinen Computer, um mit ihnen im selben Skript zu arbeiten.

Ich habe versucht Paramiko gibt es einen Weg um das? Vielen Dank.

+0

Mögliches Duplikat [SSH-Verbindung und die Ausführung des Programms mit Python paramiko Automatisieren] (https://stackoverflow.com/questions/37086065/automate-ssh -connection-and-execution-of-program-with-pythons-paramiko) – e4c5

+0

Es gibt einen besseren Weg, dies zu tun. Verwende paramiko, oder besser noch Fabric, eine High-Level-Bibliothek, die auf Paramika gebaut wurde. Bitte sehen Sie die oben verlinkte Antwort für mehr – e4c5

+0

Warum möchten Sie Paramiko nicht verwenden? +1 für Stoff – pmuntima

Antwort

1

Verlegen Sie das Skript zur Remote-Bash.

cat script.sh | ssh Benutzer @ Server/bin/Bash

1

Wie andere kommentiert haben, verwenden Sie Fabric. Es bietet eine High-Level-Schnittstelle für die Fernsteuerung über ssh und sie haben bereits die ganze harte Arbeit der Verwaltung von Authentifizierung, Schlüsseln, Fehlerbehandlung und so weiter getan. Es wird viel einfacher sein als zu versuchen, Dinge über einen Systemanruf auszuführen und alles selbst zu verwalten.

Weitere Details: