script verhält sich "komisch"

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
FitzeFatze
Beiträge: 834
Registriert: 06.07.2004 10:08:21

script verhält sich "komisch"

Beitrag von FitzeFatze » 25.02.2011 23:04:54

hallo zusammen,

ich habe ein kleines shellscript, welches ich per php (exec()) ausführen lasse.
Wenn ich das Script per Konsole ausgebe, funktioniert alles wunderbar.
Wenn ich es per php ausführe, klappt nur die Hälfte.

Ist es auf falsche Rechte zurückzuführen?

Danke
->

Code: Alles auswählen


cp /var/log/tomcat6/catalina.out .
chown wwwrun:www catalina.out
text=`cat catalina.out`


Writey(){
mailx -s"logs" -A mykonto mail@mail.com << ENDOFTEXT
$text
ENDOFTEXT
}

Writey $text
rm catalina.out

->

Code: Alles auswählen

exec('/bin/bash mail_schicken.sh '); #Bei diesem Aufruf bekomme ich nur eine leere Mail!

wie gesagt, da das script per se funktioniert, kann es ja nur eine falsche Rechteeinstellung in der php Datei sein, die eigentlich auch von root besitzt wird. zum testen habe ich mal wwwrun:www per Sudo ein paar Rechte gegeben

Hat jemand einen Rat?

vielen Dank

Benutzeravatar
bmario
Beiträge: 1257
Registriert: 05.09.2007 12:15:47
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dresden

Re: script verhält sich "komisch"

Beitrag von bmario » 26.02.2011 12:48:56

1. Ist die Funktion falsch,

Code: Alles auswählen

Writey(){
mailx -s"logs" -A mykonto mail@mail.com << ENDOFTEXT
$1
ENDOFTEXT
}
2. Warum schreibst du ein Shell Skript, für etwas dass man auch direkt in PHP tun kann?

3. die Variable $test ist auch in der Zeile

Code: Alles auswählen

Writey $text
nicht erklärt.
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse

FitzeFatze
Beiträge: 834
Registriert: 06.07.2004 10:08:21

Re: script verhält sich "komisch"

Beitrag von FitzeFatze » 26.02.2011 13:17:21

1. sorry, kann mit deinen Anmerkungen leider nicht viel Anfangen.
Wieso ist die Funktion "falsch" ? Funktionieren tut sie jedenfalls!

2. joa, hätte man wohl auch direkt in php machen können, aber ich hatte alle Einzelteile des Skripts schon parat und wollte nicht nochmal alles in php umsetzen.

3. die Variable wird doch in Zeile 3 definiert?!

->
hab den Fehler gefunden. hab das Script scheinbar in php falsch aufgerufen. Mich wundert zwar, dass er die Mail geschickt hat, sie aber leer war. Nachdem der Aufruf jetzt so aussieht : "exec('sh ./mail_schicken.sh ');" klappt alles!

Danke

Antworten