Suche Tutorial: SSH mit Python benutzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
BoOnOdY
User
Beiträge: 112
Registriert: Samstag 22. Juli 2006, 13:38

Hey,

ich suche die ganze Zeit schon nach einem Modul in Python mit dem ich per SSH Befehle auf nem anderen Server ausführen kann und hab das Modul "PYSSH" gefunden.

Aber irgendwie finde ich nirgends ein Tutorial wie man damit umgeht und so.

Hat irgendjemand ein paar passende Codeschnipsel die ich mir dazu angucken könnte oder einen Link parat?


Gruß BoOnOdY
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Paramiko dürfte das sein was du suchst.

- Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
BoOnOdY
User
Beiträge: 112
Registriert: Samstag 22. Juli 2006, 13:38

Hy,

das Ding mag vielleicht ganz gut sein, aber irgendwie ist die Doku für mich nicht einsichtig... Vielleicht bin ich einfach zu blöd dafür.
Aber ich find nicht wie man einfach eine Datei auf dem Server auf den man mit SSH zugreift ausfürht oder ein Verzeichnis wechselt? Geschweigedenn wie man sich anmeldet-..


Gruß Tim
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo!

Auf welchem Betriebssystem läuft dein Programm?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

BoOnOdY hat geschrieben:das Ding mag vielleicht ganz gut sein, aber irgendwie ist die Doku für mich nicht einsichtig... Vielleicht bin ich einfach zu blöd dafür.
Aber ich find nicht wie man einfach eine Datei auf dem Server auf den man mit SSH zugreift ausfürht oder ein Verzeichnis wechselt? Geschweigedenn wie man sich anmeldet-..
Mit dem download solltest Du eine ganze Reihe von Demos erhalten haben. Funktionieren die nicht?

Gruß,
Christian
BoOnOdY
User
Beiträge: 112
Registriert: Samstag 22. Juli 2006, 13:38

Hy,

ich hab das alles auf Windows laufen

Gruß BoOnOdY
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

BoOnOdY hat geschrieben:ich hab das alles auf Windows laufen
Hallo BoOnOdY!

Dann ist es das Einfachste, du rufst ``plink`` über ``Popen`` auf.

Plink ist ein Kommandozeilentool mit dem du einfache Kommandos über SSH-Verbindungen absetzen kannst.

Installiere dir dazu das komplette Putty http://www.chiark.greenend.org.uk/~sgta ... nload.html
(suche auf der Webseite nach "Installer").
In der zugehörigen Hilfe-Datei (putty.chm) wird plink genau erklärt.

Z.B.: so:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import subprocess

args = [
    "J:\Programme\PuTTY\plink.exe", "-batch", "-l", "<benutzername>",
    "-pw", "<passwort>", "<ziel_computer>", "<befehl>"
]
proc = subprocess.Popen(args, stdout = subprocess.PIPE)
print proc.stdout.read()
mfg
Gerold
:-)
Zuletzt geändert von gerold am Dienstag 16. Oktober 2007, 13:51, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BoOnOdY
User
Beiträge: 112
Registriert: Samstag 22. Juli 2006, 13:38

Hey Cool, das ist doch genau das was ich wollte =) Putty hab ich schon aber dieses Plink kannte ich nicht =) vielen Dank

Gruß´BoOnOdY
BoOnOdY
User
Beiträge: 112
Registriert: Samstag 22. Juli 2006, 13:38

Entschuldigt den Doppelpost:

Ich hab nur noch ein kleines Problem... wie muss es aussehen wenn ich zuerst in ein Verzeichnis wechseln will und dann eine Datei ausführen.

Ich bekomm keine Fehlermeldung wenn ich die beiden Befehle mit nem Komma abtrenne, aber die datei wird auch nich aufgerufen...

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import subprocess

args = [
    "C:\Programme\PuTTY\plink.exe" , "-l", "<benutzername>", "-pw", "<passwort>", "<Serveradresse>", "/usr/boonody/time/timer.sh"
]
proc = subprocess.Popen(args, stdout = subprocess.PIPE)
print proc.stdout.read()
Da sagt er mir das die Datei nicht vorhanden wäre wenn ich aber dann den Befehl so formuliere:

"cd /usr/boonody/time", "./timer.sh"

dann gibt er keine Rückmeldung aber führt den skript auch net aus.

gruß BoOnOdY
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo BoOnOdY!

So
"bash /usr/boonody/time/timer.sh"
oder so
"cd /usr/boonody/time; bash timer.sh"
sollte es evt. funktionieren.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BoOnOdY
User
Beiträge: 112
Registriert: Samstag 22. Juli 2006, 13:38

2te Variante =) dankeschön jetzt is alles geklärt

Vielen Dank

gruß BoOnOdY
Antworten