C# Windows Programm Shell Skript auf Linux Maschine ausführen

Alfredo

Commander
Registriert
Juli 2005
Beiträge
2.934
Hallo,

eigentlich erstmal eine Frage, ob das überhaupt möglich ist?

Kann ich über ein Windows Programm, welches ich beliebig ändern kann, ein sh Skript auf einer Linux Maschine starten. Es ginge auch über PHP auf Linux, dass ich dann ein cgi skript starte?!

Also über ein Windows Programm fülle ich eine Liste mit Links und nun will ich ein Skript ausführen welches mit wget die links nacheinander runterlädt. Die Liste befüllen ist kein Problem ist einfach nur eine Textdatei in einem Samba Ordner. Aber wie führe ich am besten das Skript über die Win-Anwendung aus?!

Danke und mfg
Alfredo
 
Kann ich ssh in ein Windows Programm inplementieren?

Gibt es vielleicht auch eine andere Möglichkeit ein skript dort aufzurufen?
 
Über PHP solltest du auf jedenfall ein Skript starten können, welches auf dem selben Server liegt, und dir die Daten mit wget runterläd.

Sonst könnest du ja auch einen Kleinen Server schreiben der auf dem Linux System läuft. Das solltest du dann auf jedenfall ansprechen können....egal mit welcher Sprache.

Grüße

krizzel
 
Also ich starte das Programm von meinem Laptop aus, und der Download soll auf der Popcorn Hour (ist ein Abspielgerät für allmöglichen Videos) laufen, da hab ich leider nicht so die Möglichkeiten auf dem System was zu ändern. Auf dem Poppy läuft PHP4.3 und eine Linux Lösung wo man auch sh Skripte ausführen kann. Also auf der Machine selber über PHP ein Skript ausführen, ist kein Problem nur von meinem Laptop aus, auf dem Poppy ausführen?!
 
Naja, wenn die datei schon da ist:
wget -I datei.txt

danach eben die Datei löschen damits nicht 2x runtergeladen wir und das ganze noch regelmäßig ausführen lassen (cron job?)
 
Und ich kann das wget irgendwie in mein c# Programm einbinden? Also ich will den Dowload schon aus dem Programm starteten wollen.
 
Naja am einfachsten wäre wohl ein Cron-Job, der überprüft ob es die "Dateien.txt" gibt, und wenn ja, die Datei umbenennt, wget ausführt.
Dein C# Programm würde einfach nur die Text-Datei erstellen.

Gruß
 
Bin mir nicht mal sicher, ob ich dort einen cronjob erstellen kann. Ich muss mal gucken.
 
Ich werde mal gucken, ob die Popcorn Hour das unterstützt?! Danke für alle Vorschläge.
 
Einfach ne PHP-Datei machen, die das downloadet, was du willst.
Die wird dann von deinem C# Programm so oft aufgerufen, bis alles übertragen ist ;)
Im schlimmsten Fall machst du nen Webbrowser auf deine Oberfläche... wenn du die schön integrierst, kannst du ja per PHP Infos zum Bearbeitsungsstatus zurückgeben...

Gruß
 
Backslash schrieb:
Es gibt zum Beispiel openSSH für Windows, aber ich denke auch, dass es wahrscheinlich einfacher ist bzw schneller geht selbst einen kleinen Server zu programmieren.

Und vor allem sicherer?
Bei sicherheitskritischen Diensten, wie SSH würde ich einem Laien dringendst davon abraten, das Rad neu zu erfinden.
 
Er muss sich auf dem System, auf dem er wget ausführen soll einloggen.
Dabei muss er sicherstellen, dass die Daten, die er verwendet, nicht abgegriffen
werden können. Weder auf seinem System, noch auf dem Zielsystem, und auch
nicht während der Übertragung (letzteres sollte bei SSH gehen, wenn die
Implementierung halbwegs ok ist). Und das vor, während und nach der Sitzung.

Wenn das nicht gegeben ist, kann man auf dem Server beliebigen Code zur
Ausführung bringen.

Gerade, wenn der Nutzer, mit dem er sich anmeldet administrative Rechte hat,
oder erlangen kann, ist das besonders sicherheitsrelevant.
 
Quark.

Man kann einfach einen Server programmieren der den Befehl ausführt, wenn man eine Verbindung herstellt (oder zB noch Argumente empfängt, was hier aber wohl nicht einmal nötig wäre). Von beliebigen Befehlen war nicht die Rede. Das kommt dann aufs gleiche raus wie wenn man ein PHP-Script aufruft, was ja auch schon in Erwägung gezogen wurde.

Würde inzwischen aber zu einem immer auf dem PC ausgeführten Programm/Script tendieren, dass einfach prüft ob neue Daten da sind und bei Bedarf lädt.
 
Ach ganz ohne authentifizierung jedem erlauben beliebige Befehle auf dem Server auszuführen?
omg :(
 
Die Authentifizierung lässt sich dann genauso gut realisieren wie z.B. mit PHP. Einfach mal einen Schritt weiter denken ;)
Und lesen kannst du anscheinend auch nicht. Nochmal: von beliebigen Befehlen war nie die Rede, sondern dass ein Bestimmter Befehl ausgeführt wird. Und wie von einem Download einer bestimmten Datei (über die er offensichtlich die Kontrolle hat) auf den Server eine Gefahr ausgehen soll verstehe ich nicht. Bitte erkläre das doch.

[edit] klar ist das unflexibel, aber mehr braucht es hier nicht. und ssh habe ich ja schon ganz am anfang vorgeschlagen und das wollte er wohl nicht. [/edit]
 
Zuletzt bearbeitet:
Nur einen einzigen Befehl ausführen zu lassen ist stark unflexibel.
Was ist, wenn er demnächst was anderes machen will? Programm
ändern und neukompilieren? Und dann für jeden einzelnen Befehl,
den er vielleicht ausführen möchte, einen Dienst laufen lassen.
Die Idee finde ich ziemlich schlecht.

Und wenn er flexibel sein möchte, gibt es ja schon SSH, also muss
er das Rad nicht neu erfinden. Also auch hier keine gute Idee, selbst
etwas zusammenzuschlunzen.
 
Zurück
Oben