(Lohn: Ioncube kostenlos) Wie Bash-Optionen aus PHP verarbeiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • (Lohn: Ioncube kostenlos) Wie Bash-Optionen aus PHP verarbeiten

    Ich habe noch nie ein "wirkliches" Shellscript erstellt ausser per Paste'nCopy
    Soviel zu den Vorraussetzungen
    Ich bin gerade dabei, eine PHP-basierte Support-Oberfläche zu erstellen, die aus CVS die jeweils aktuellste Download-Version eines Programmes holt, dieses mit . Ioncube Encoder verschlüsselt und anschließend gepackt in den Downloadbereich des Members ablegt.
    Leider hakt es bei den PHP-Kommandozeilen-Befehlen etwas mit CVS und Ioncube, so dass ich über eine .sh-Datei arbeiten muss.
    Folgendes test.sh
    Code:
    cd /web/httpd/htdocs/support/download
    cvs -d /usr/cvs export -D 2002-10-26 Modulname
    cd /web/httpd/htdocs/support/download/Modulname
    tar cfz Modulname.tgz *
    funktionierte bei mir, wenn ich es über
    PHP-Code:
    <?
    exec("test.sh")
    ?>
    aufrufe. Auch mit dem IONCUBE-Befehl ...
    Ausgangspunkt ist nun folgendes rudimentäres - mit vielen vom PHP-Script übergebenen Variablen, bei denen ich nicht weiss,
    wie man sie im Shell-Script verabeiten kann.
    modul_export.sh:
    Code:
    #! /bin/bash
    #
    # ERSTELLEN DER ENCODIERTEN VERSION
    # EINES CVS-MODULS
    
    # Variablen:
    #	/path/to/ioncube	=> Pfad zum Encoder (siehe [url]www.ioncube.com[/url])
    #	modul				=> Name des CVS-Modules
    #	today				=> Tagesdatum im Format 2002-10-26
    #	qverz				=> Pfad der exportierten Dateien
    #	zverz				=> Encoder-Ziel-Pfad
    #	WWW Download DIR	=> Zielverzeichnis der zum Download
    #						   bereitgestellten tgz- oder Zip-Datei
    #	include				=> zusaetzlich zu encodierende Dateien und Verzeichnisse
    #	exclude				=> nicht zu encodierende Dateien und Verzeichnisse
    #
    #	erase-target		=> bestehendes Zielverz. loeschen
    #	ODER rename-target	=> bestehendes Zielverz. umbenennen
    #	ODER --merge-target	=> bestehendes Zielverz. updaten
    #
    #	expire-on			=> Testversion arbeitet bis yyyy-mm-dd
    #	ODER expire-in		=> Testversion laeuft d Tage ODER h Stunden. ODER m Minuten
    #
    #	allowed-ip-addr		=> IP, auf der das programm laufen darf 
    #	ODER SUBNET 
    #		allowed-ip-addr=xxx.xxx.xxx.xxx 
    #		allowed-ip-mask=xxx.xxx.xxx.xxx
    #
    #	...
    
    
    cd <#/path/to#>/ioncube/src
    
    cvs -d /usr/cvs export -D <#today#> <#modul#>
    
    cd <#/path/to#>/ioncube
    
    # Folgender Code muss eigentlich in einer Zeile stehen
    # aber der Uebersicht halber mal mit Umbruechen
    ./ioncube/ioncube_encoder <#qverz#>/<#modul#> -o <#zverz#>/<#modul#> 
    	[--verbose]
    	[--exclude=<BeispielVerz: <#/path/to#>/ioncube/src/template/>] 
    	[--include=<Beispielwert: <#/path/to#>/ioncube/src/template/*.inc>] 
    	[--exclude=<Beispielwert: <#/path/to#>/ioncube/src/datei.conf> ... 
    	# [ --include= ... UND --exclude= ... sind beliebig erweiterbar, 
    	# aber aus PHP uebergebene Reihenfolge muss stimmen] 
    	[ --erase-target ODER --rename-target ODER --merge-target ] 
    	[--expire-on=yyyy-mm-dd]
    	[--expire-in=7d ODER 8h <d = Tage ODER h = Std. ODER m = Min.>] 
    	[--allowed-ip-addr=<192.168.1.12>] 
    	# ODER SUBNET 
    	[--allowed-ip-addr=<192.168.1.0> --allowed-ip-mask=<255.255.255.0>]
    	[ --noch-ein-paar-args=<argument> ] 
    	[ --noch-ein-paar-vars ] 
    	...
    cd <#zverz#>/<#modul#>
    
    tar cvfz <#WWW Download DIR#>/<#modul#>.tgz *
    
    done
    echo "OK"
    exit
    esac
    Kann jemand dieses Bash-Script für mich schreiben, so dass es meine Values aus dem PHP-Script übernimmt?
    Als Gegenleistung biete ich an, dass derjenige seine PHP-Scripte mit IONCUBE für ein Jahr kostenlos bei uns verschlüsseln kann.

    Vielen Dank
    Guido

  • #2
    Kann den wirklich keiner helfen??
    Guido

    Kommentar


    • #3
      Original geschrieben von Guido
      Kann den wirklich keiner helfen??
      Guido
      Hi;-)
      Es gibt in Bash zwei Arten wie Du Deine Parmeter übernehmen kannst !
      Intern und Extern!

      Interne mit
      `read x`

      Externe mit $1 $2 $3 etc.

      Mach Dir folgende Eintraege in Dein Script
      #!/bin/sh
      echo Content-type: text/plain
      echo
      echo "<html>"
      echo "<head>"
      echo "</head>"
      echo "<body>"
      read x
      echo '<tt>'"extern =""$1"'</tt>'|sed -e 's/ /\&nbsp;/g'
      echo '<tt>'"intern =""$x"'</tt>'|sed -e 's/ /\&nbsp;/g'
      echo "</body>"
      echo "</html>"

      Nun Solltest Du anhand des Output sehen wie Deine Parameter übergeben werden, und mit diesen Arbeitest Du dann halt ;-)

      Mƒg ®eini

      Ps.:æhm noch was ... wenn Du test.sh auf test.cgi umbennest ersparst Dir das mit dem exec !
      Zuletzt geändert von reini123; 18.07.2003, 10:46.

      Kommentar

      Lädt...
      X