bake hat geschrieben:Wie würde denn eine sichere und sauberer Lösung aussehen?
Hallo bake!
Eine recht saubere Lösung wäre z.B. ein XMLRPC-Server auf dem Windows-Computer. Siehe:
http://www.python-forum.de/topic-5478.html
Sicherer wird es, wenn man das XMLRPC-Protokoll verschlüsselt. Z.B mit
http://pypi.python.org/pypi/pyXMLRPCssh (ungetestet)
Eine sehr sichere und flexible Lösung wäre Cygwin auf dem Windows-Computer. Man installiert unter Cygwin den SSH-Server, erstellt ein Schlüsselpaar und ruft das Programm vom Linux Computer aus per SSH auf. Dann können so gut wie alle Kommandozeilenprogramme auf dem Windows-Computer aufgerufen werden.
Aufgerufen werden können die Programme z.B. mit
http://pypi.python.org/pypi/PuSSH
Man kann aber auch ``ssh`` mit
http://pypi.python.org/pypi/pexpect ansteuern. Oder wenn man mit Schlüsselpaaren arbeitet, dann genügt es, ``ssh`` mit ``subprocess.Popen`` aufzurufen.
Hier noch ein paar Links:
-
http://pypi.python.org/pypi/paramiko
-
http://pypi.python.org/pypi/ssh4py
-
http://pypi.python.org/pypi/pexpect
Aber es geht noch weiter. Es gibt richtig viele Möglichkeiten, um ein Programm auf einem anderen Computer aufzurufen. Z.B. kannst du auf dem Windows-Computer einen Mail-Server installieren. Wird ein Email an eine dort eingerichtete Mailbox gesendet, dann kann beim Empfang ein Programm ausgeführt werden. Die Parameter bekommt das Programm aus dem Email.
Du kannst auch einen LowLevel-Netzwerkserver programmieren. Oder einen Web-Server (z.B. Apache) einrichten. Beim Aufruf einer mit SSL gesicherten URL kann ein Programm aufgerufen werden. Oder du könntest den MSSQL-Server installieren und dort ActiveX-Funktionen per SQL aufrufen lassen. Der PostgreSQL-Server kann auch Python-Funktionen abarbeiten. So kannst du z.B. durch das Ausführen einer SQL-Abfrage eine Python-Funktion anstoßen... Und das ist längst noch nicht alles. Es gibt noch hunderte Möglichkeiten. Man muss nur abwägen, welche Möglichkeit für die jeweilige Aufgabe Sinn macht.
mfg
Gerold
