cgi bash skripting

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Adramelec, 17.08.2010.

  1. #1 Adramelec, 17.08.2010
    Adramelec

    Adramelec Grünschnabel

    Dabei seit:
    30.01.2009
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo!

    Ich habe eine Frage bezüglich CGI BASH Skripting.

    Folgende Aufgabe es soll durch ein einfaches HTML Formular Dinge abgefragt werde, diese Dinge sollen dann in einen Bash Befehl (der auf das System direkt ausgeführt wird) verarbeitet werden.

    ALso nehmen wir an .. das Formular besteht aus einem Feld, wo man eine Zahl von 1-3 eingeben soll.
    Man gibt 2 ein und drückt auf abschicken. Dann soll AUF dem System z.B. der Befehl "echo "2" > /etc/config_whatever_file" ausgeführt werden.

    Wie mache ich das ? Funktioniert das überhaupt so wie ich mir das vorstelle?

    Danke schon mal im Vorraus!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 slackfan, 17.08.2010
    Zuletzt bearbeitet: 19.08.2010
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Hi,


    gibt es einen Grund dafür, dass du Bash benutzen willst? Es gibt viele Möglichkeiten, das umzusetzen (Von Sicherheitsaspekten mal abgesehen), aber Bash würde ich nicht in die engere Wahl schließen :)

    Hier eine Variante aus dem playground mit Ruby, sehr primitiv und absolut nicht sicher, tut aber.

    PHP:
    #!/usr/bin/env ruby

    require 'webrick'

    class Call WEBrick::HTTPServlet::AbstractServlet
      def do_GET
    (requestresponse)
        
    action request.query['action']
        
    response.status 200
        response
    ['Content-Type'] = 'text/html'
        
    response.body 'No command given'
        
    if action
          response
    .body IO.popen(action.to_s).readlines.join(""#.join("<br/>")
        
    end
      end
      alias 
    :do_POST :do_GET
    end

    if $== __FILE__ then
      server 
    WEBrick::HTTPServer.new(
        :
    BindAddress     => 'localhost',
        :
    Port            => 8080,
        :
    Logger          => WEBrick::Log.new('server.log'WEBrick::Log::DEBUG),
        :
    AccessLog       => [[File.open('access.log''w'), WEBrick::AccessLog::COMBINED_LOG_FORMAT]]
      )
      
    # Required for CGI on Windows; unnecessary on Unix/Linux
      
    server.config.store(:CGIInterpreterWEBrick::HTTPServlet::CGIHandler::Ruby.to_s)
      
    server.mount("/call"Call)
      
    # Trap signals so as to shutdown cleanly
      
    ['TERM''INT'].each do |signal|
        
    trap(signal) { server.shutdown }
      
    end
      
    # Start the server and block on input
      
    server.start
    end
    Server startet per [~] ruby webserver.rb.
    url wäre dann z.B. http://localhost:8080/call/?action=fortune.
    Die action wird dann ausgeführt und die Ausgabe des Befehls in die Website geschrieben:
    cu
     
  4. #3 Adramelec, 19.08.2010
    Adramelec

    Adramelec Grünschnabel

    Dabei seit:
    30.01.2009
    Beiträge:
    2
    Zustimmungen:
    0
    Ja, ich kann kein Ruby. Wenn ich Änderungen durchführen muss, kann ich diese nicht machen.

    Bash wäre mir wesentlich angenehmer da es auch portabler ist. Gibt es da noch ein Beispiel-Skript?

    Sicherheit ist völlig irrelevant da das sowieso nur bei mir lokal laufen würde.

    Danke ;)
     
  5. #4 slackfan, 19.08.2010
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Code:
    Bash wäre mir wesentlich angenehmer da es auch portabler ist.
    Das halte ich für ein Gerücht :)

    Mit Bash kann ich dir hier nicht dienen. Da das Rubyskript einfach die Ausgabe des Shell-Befehls zurückliefert, besteht imho so gut wie keine Notwendigkeit, Änderungen am Rubyskript selbst durchzuführen. Es leitet ja nur den Befehl durch. Niemand hindert dich, ein Shellskript zu schreiben, das die komplette HTML-Ausgabe erledigt und zurückliefert. Vielleicht kann jemand anderes helfen.

    cu
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

cgi bash skripting

Die Seite wird geladen...

cgi bash skripting - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Bashscript aus Debian6 läuft nicht auf Debian7

    Bashscript aus Debian6 läuft nicht auf Debian7: Hallo an alle, nachdem ich ein Skript von squeeze auf wheezy kopiert habe und ausführte, erschienen gleich wilde Fehlermeldungen, nach denen ich...
  3. Bash sucht neues Logo

    Bash sucht neues Logo: Die GNU Bourne Again Shell (bash) sucht nach knapp 20 Jahren ein neues, individuelles Logo. Alle Anwender und Interessenten sind deshalb...
  4. Mit bash Skript bestimmte Werte aus Tabelle lesen

    Mit bash Skript bestimmte Werte aus Tabelle lesen: Hallo! Ich beschäftige mich erst seit Kurzem mit bash und bin deshalb noch nicht so fit darin. Und nun habe ich schon ein kleines Problem und...
  5. Bash: Geteiltes Fenster mit unterschiedlichen Funktionen

    Bash: Geteiltes Fenster mit unterschiedlichen Funktionen: Hallo Leute, ist es in Bash möglich, zwei Funktionen in zwei getrennten Teilen eines Terminalfensters ablaufen zu lassen? Da Bash die Befehle...