Hallo zusammen
ich meldemich mal wieder mit einem Problem:
Ich hab ein Shell-Skript, das mir aus den übergebenen Parametern einen kompletten Pfad zu einem Php-Skript erstellt.
Dieser sieht z.B. so aus : http://192.168.2.101/remote/remote.php?a=AAAA&b=BBBBB&c=CCCCC&d=DDDDDDD&e=EEEEEE&f=FFFFFF
Das php-File soll folgendes machen:
Die übergebenen Daten in eine MySQL Tabelle schreiben, und die Anzahl der Datensätze einer SQL-Select-Abfrage via
exec an ein Perl-Skript übergeben....ganz am Schluss wird im php-Skript mit
Ein Wert ausgegeben.
Wenn ich nun den o.g. Link in meinem Browser öffne, dann werden alle Arbeitschritte abgearbeitet, sprich die Daten landen in der DB, die Anzahl der Datensätze der Select-Abfrage werden erfolgreich an mein perl-Skript übergeben.
Nun muss ich aber erreichen, dass ein Aufruf via wget das selbe bewirkt....
also, geb ich in der Konsole
wget "http://192.168.2.101/remote/remote.php?a=AAAA&b=BBBBB&c=CCCCC&d=DDDDDDD&e=EEEEEE&f=FFFFFF" ein, so wird auch diesesmal das komplette php-Skript abgearbeitet und auch das Perl Skript richtig aufgerufen.
Und nun zu meinem eigentlichen Problem:
Die Parameter für den php-Aufruf erhalte ich durch verschiedene Parameter einen Shell-Skriptes.
Dieses sieht momentan so aus:
skwarn.sh :
Wenn ich nun dieses Skrtip mit
./skwarn.sh AAAAAA BBBBBBB CCCCCCC DDDDDD EEEEEE FFFFFF
aufrufe, dann passiert folgendes:
Jedoch wird der im php-Skript enthaltene Aufruf des Perl-Skriptes nicht ausgeführt. :???:
Zum Enviroment:
Der Aufrufende Server (dort wo wget ausgeführt wird) ist ein Suse 10.3 ,
der Rechner mit der php-Date läuft auf 9.3.
Das Perl Skript habe ich mittels visudo in Sudo aufgenommen (wwwrun ALL= NOPASSWD: /srv/remote/send2srv.pl)
Leider hab ich gar keine Ahnung, woran es liegen könnte, dass das php-Skript einen Unterschied macht, ob
a) die Datei mit dem Browser oder
b) mittels wget
gezogen wird.
ich meldemich mal wieder mit einem Problem:
Ich hab ein Shell-Skript, das mir aus den übergebenen Parametern einen kompletten Pfad zu einem Php-Skript erstellt.
Dieser sieht z.B. so aus : http://192.168.2.101/remote/remote.php?a=AAAA&b=BBBBB&c=CCCCC&d=DDDDDDD&e=EEEEEE&f=FFFFFF
Das php-File soll folgendes machen:
Die übergebenen Daten in eine MySQL Tabelle schreiben, und die Anzahl der Datensätze einer SQL-Select-Abfrage via
exec an ein Perl-Skript übergeben....ganz am Schluss wird im php-Skript mit
Code:
echo $RUECKGABE;
Wenn ich nun den o.g. Link in meinem Browser öffne, dann werden alle Arbeitschritte abgearbeitet, sprich die Daten landen in der DB, die Anzahl der Datensätze der Select-Abfrage werden erfolgreich an mein perl-Skript übergeben.
Nun muss ich aber erreichen, dass ein Aufruf via wget das selbe bewirkt....
also, geb ich in der Konsole
wget "http://192.168.2.101/remote/remote.php?a=AAAA&b=BBBBB&c=CCCCC&d=DDDDDDD&e=EEEEEE&f=FFFFFF" ein, so wird auch diesesmal das komplette php-Skript abgearbeitet und auch das Perl Skript richtig aufgerufen.
Und nun zu meinem eigentlichen Problem:
Die Parameter für den php-Aufruf erhalte ich durch verschiedene Parameter einen Shell-Skriptes.
Dieses sieht momentan so aus:
skwarn.sh :
Code:
cd /tmp/dl
ANSW="http://192.168.2.101/remote/remote.php?a=$1&b=$2&c=$3&d=$4&e=$5&f=S6"
wget -q $ANSW
Wenn ich nun dieses Skrtip mit
./skwarn.sh AAAAAA BBBBBBB CCCCCCC DDDDDD EEEEEE FFFFFF
aufrufe, dann passiert folgendes:
Die Datei
remote.php?a=AAAAAA&b=BBBBBBB&c=CCCCCCC&d=DDDDDD&e=EEEEEE&f=FFFFFF
wird im Ordner /tmp/dl gespeichert und enthält den korrekten Wert der vom Skript ausgegeben wird (s.o. echo $RUCKGABE
Die Daten werden in der MySQL Tabelle gespeichert
Jedoch wird der im php-Skript enthaltene Aufruf des Perl-Skriptes nicht ausgeführt. :???:
Zum Enviroment:
Der Aufrufende Server (dort wo wget ausgeführt wird) ist ein Suse 10.3 ,
der Rechner mit der php-Date läuft auf 9.3.
Das Perl Skript habe ich mittels visudo in Sudo aufgenommen (wwwrun ALL= NOPASSWD: /srv/remote/send2srv.pl)
Leider hab ich gar keine Ahnung, woran es liegen könnte, dass das php-Skript einen Unterschied macht, ob
a) die Datei mit dem Browser oder
b) mittels wget
gezogen wird.