scp direkt aus Anwendung herraus aufrufen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Nikolas
User
Beiträge: 102
Registriert: Dienstag 25. Dezember 2007, 22:53
Wohnort: Freiburg im Breisgau

Dienstag 22. Januar 2008, 15:48

Hallo

Ich würde gerne einen Kalender schreiben, in den mehrere Leute Notizen schreiben können. Diese Daten will ich per scp auf einen Server legen und holen können. Einn großes Modul würde ich am liebsten verhindern, da hier wirklich nur ein scp in beide Richtungen und eine Fehlermeldung, wenn die Datei nicht existiert reicht.
Wichtig wäre aber, dass das ganze unter Mac und Windows läuft.


Könnte mir da jemand weiterhelfen?
Erwarte das Beste und sei auf das Schlimmste vorbereitet.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Mittwoch 23. Januar 2008, 08:54

Du könntest das Subprocess benutzen:

Code: Alles auswählen

import subprocess
status = subprocess.call(['ls', '-l'])
Da scp normalerweise nach einen Kennwort fragt, würde ich empfehlen, host-based authentication mit einen key pair einzusetzen. Dann ist der Aufruf einfacher und sicherer, da du kein Kennwort irgendwo im Programm hart verdrahten musst.

Stefan
Zuletzt geändert von sma am Mittwoch 23. Januar 2008, 17:50, insgesamt 1-mal geändert.
Nikolas
User
Beiträge: 102
Registriert: Dienstag 25. Dezember 2007, 22:53
Wohnort: Freiburg im Breisgau

Mittwoch 23. Januar 2008, 17:34

Sehr schön, ich glaube, damit kann ich arbeiten. :lol:
Das mit der Authentication über Schlüsseldatein ist eine gute Idee. Auf meinem Rechner benutze ich das schon, auf dem anderen Rechner, auf dem der Client läuft, werde ich es wohl auch einrichten.
Erwarte das Beste und sei auf das Schlimmste vorbereitet.
Nikolas
User
Beiträge: 102
Registriert: Dienstag 25. Dezember 2007, 22:53
Wohnort: Freiburg im Breisgau

Samstag 26. Januar 2008, 20:51

So. geschafft:

Code: Alles auswählen

from subprocess import call
result = call(["scp", "dateihier", "Loginname@zielrechner:/zieldatei" ])
Erwarte das Beste und sei auf das Schlimmste vorbereitet.
Antworten