willy96: Scripte Ausführen

Guten Tag

Besteht die Möglichkeit per HTML z.B. mittels <a href="javascript...> oder ähnlichem, ein Shell Script #!/bin/bash auszuführen??

Vielen Dank

  1. Wo soll das Script liegen?
    Auf dem Rechner der das Javascript aufruft? - dann nein!
    Auf dem Server? - dann eventuell über Umwege mit Ajax.

    Gruß
    T-Rex

    1. Also der Apache Läuft auf einer Virtuellen Maschine auf meinem Rechner wobei mein Rechner als FW dient.

      Das Script liegt auf dem Apache und soll auch von diesem auf der Website abrufbar ausgeführt werden.

      Nur leider bin ich mit a href irgendwie nicht weitergekommen bin aber auch nicht wirklich bewandert in Programmiersprachen sei hier gesagt.

      1. Nagut ich rate mal dein Anliegen und versuche eine Lösung an zu bieten :D.

        Du willst erst wenn man irgendwo drauf klickt etwas mittels .bat - Datei bei deinem Server machen.
        Dann KÖNNTE das ganze so aussehen:

        html:
        <a href='javascript: ajax("datei.php")'>Batch ausführen</a>

        javascript:
        function ajax()
        {
            //--- Ajax Funktionalität, gibt hierführ genug tutorials
        }

        php datei.php:
        system("datei.bat");

        Wenn du direkt bei Seitenaufbau die .bat Datie ausführen möchtest kannst du das ganze Javascript Ajax zeugs weglassen und den PHP direkt in dein Script einbauen.

        ansonsten sei auch dir gesagt, je ausführlicher die Problem Beschreibung, desto genauer die Antwort

        Gruß
        ratender
        T-Rex

        1. Vielen Dank dir trozdem schonmal werde das ganze mal ausprobieren und mich in Ajax einlesen vielleicht findet sich ja was.
          Im Notfall beschreib ich das ganze dann mal ausführlicher.
          Sry für die knappe erläuterung und...

          Danke :)

          1. Guten Tag

            Also ich habe mich an das ganze jetzt anders rangewagt und es ist ein weiteres Problem aufgetreten.
            Ich habe mich in das Thema CGI Scripte eingelesen.
            Das Problem was auftitt ist, dass ich es gerne hätte dass man über ein CGI Script einen befehl ausführen kann den man genauso in die Shell eingeben würde z.b. /etc/init.d/apache2 start oder sudo bash o.ä.
            Falls es dazu ein fertiges Script gibt oder einen Ansatz würde ich mich sehr freuen.

            Vielen Dank

            1. Hi,

              Ich habe mich in das Thema CGI Scripte eingelesen.
              Das Problem was auftitt ist, dass ich es gerne hätte dass man über ein CGI Script einen befehl ausführen kann den man genauso in die Shell eingeben würde z.b. /etc/init.d/apache2 start oder sudo bash o.ä.

              Prinzipiell geht das. Als Shebang kannst du, wie von dir auch schon beschrieben, auf /bin/bash zeigen. Im Vergleich zu einem normalen Shell-Skript musst du nur daran denken, einen Content-Type-Header auszugeben.

              Ich vermute, dass dein Problem eher rechtebedingt ist. Wenn du ein Programm über CGI aufrufst, läuft es mit den Rechten und unterm dem User, mit dem der Apache gestartet wurde. Dieser hat i.d.R. nicht die Rechte, die dein eigener User hat.
              Also entweder den Apache unter deinem User starten oder anderweitig die Rechte wechseln.

              Bis die Tage,
              Matti

            2. Das Problem was auftitt ist, dass ich es gerne hätte dass man über ein CGI Script einen befehl ausführen kann den man genauso in die Shell eingeben würde z.b. /etc/init.d/apache2 start oder sudo bash o.ä.

              Das ist prinzipiell über einen system-Befehl (oder einen ähnlichen) möglich. Probleme wird es aber - wie bereits gesagt - oft mit den Rechten geben, da der Webserver meist unter einem User gestartet wird, der (aus gutem Grund!) wenige besitzt.

              Ein Aufruf mit sudo wird so nicht klappen, denn der erwartet danach eine Eingabe über Tastatur. Es sei denn, Du hast für diesen Befehl explizit die Anfrage nach dem su-Passwort ausgeschaltet (Stichwort sudoers-Datei).

              Gruß
              Stefanie