4 Stimmen

Verwendung von C# zum Aufruf eines Perl-Skripts auf einer Unix-Box

Ich muss ein Perl-Skript (im Grunde eine Auftragsübermittlung) auf einer Unix-Box ausführen. Dies muss von einer C#-Anwendung, die auf einem Windows-Rechner sitzt, geschehen.

Ist das überhaupt möglich? Wenn ja, wo soll ich anfangen? Jeder Lesestoff wäre hilfreich!

2voto

Valentin V Punkte 23621

Probieren Sie dieses raffinierte SharpSSH Bibliothek, um eine Verbindung zu einer Unix-Box herzustellen. Wenn Sie verbunden sind, können Sie dort beliebige Befehle ausführen.

0voto

Steve Weet Punkte 27546

Um dies zu erreichen, können Sie ssh verwenden. ssh stellt eine Verbindung zu einem entfernten Rechner her und führt beliebige Befehle aus. Wenn Sie private/öffentliche Schlüsselpaare zwischen den beiden Rechnern einrichten, können Sie dies tun, ohne eine interaktive Eingabeaufforderung zu benötigen.

Vielleicht gibt es auch ssh-Bibliotheken für .net, die wahrscheinlich sauberer sind als der Aufruf eines externen Programms.

Die bekannteste Implementierung von ssh für Windows ist wahrscheinlich putty, das Sie hier finden können ici

0voto

Dies ist eher eine architektonische Frage... Standardmäßig haben wir auf der Windows-Seite der Konversation keine Protokolle, um mit einem Unix zu kommunizieren.

Dies wird auf unterschiedliche Weise gelöst: Microsoft beschloss, openpegasus.org für die Überwachung von Unix-Systemen zu verwenden, um eine standardisierte WS-Man-Schnittstelle auf diesen Systemen zu haben, die ähnlich funktioniert wie WMI unter Windows. Ich habe einige Beiträge, in denen ich damit experimentiert habe http://www.muscetta.com/tag/wsman/ .

Ein anderer Ansatz ist, wie Steve bereits vorgeschlagen hat, die SSH-Bibliotheken von PuTTy zu verwenden - sie sind unter einer Open-Source-Lizenz veröffentlicht, die es Ihnen erlaubt, ihren Code in Ihr Programm einzubetten - um Befehle direkt auf dem entfernten Host aufzurufen.

Der WSMan/CIM-Daemon hat den Vorteil, dass man über einen Webservice kommuniziert und serialisierte Objekte erhält, die man konsumieren kann (vorausgesetzt, man hat die richtigen Wrapper gebaut) - aber er ist auf Unix-Rechnern nicht standardmäßig installiert; SSH hat den Vorteil, dass es auf allen modernen Unix-Dialekten standardmäßig installiert ist, und mit ihm kann man alles tun, was man an der Unix-Eingabeaufforderung nativ tun würde (tatsächlich ist es das, was man tun würde), aber man muss den Text parsen, den man in der Shell zurückbekommt. Es gibt auch andere Implementierungen von SSH unter Windows, aber ich glaube, nur PuTTY ist kostenlos und wiederverwendbar. Andere Varianten könnten in bereits erstellten Bibliotheken enthalten sein, aber Sie müssten sie separat kaufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X