PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cronjob Permission-Problem



ganesch
05.07.05, 09:59
Hallo zusammen,

Ich verstehe nicht so ganz, weshalb das funktioniert

tail -n 1000 /var/log/apache/error.log | mail -s "Apache error.log" info@mydomain.ch
das aber nicht

grep 'web6' | /var/log/apache/error.log | mail -s "Apache error.log von User web6" info@mydomain.ch

Bei letzerem bekomme ich folgende Fehlermeldung:

/root/cron/sendErrorLog.sh: /var/log/apache/error.log: Permission denied
Null message body; hope that's ok

Natürlich ist das nicht o.k. :(

Hat jemand einen Vorschlag, wie ich das Problem besteitigen könnte?

Tomek
05.07.05, 10:08
Das ist falsch:

grep 'web6' | /var/log/apache/error.log | mail -s "Apache error.log von User web6" info@mydomain.ch
Ein Pipe zuviel und er versucht /var/log/apache/error.log auszuführen, was natürlich nicht geht, da die Datei error.log keine Ausführrechte besitzt.
Richtig wäre es so:

grep 'web6' /var/log/apache/error.log | mail -s "Apache error.log von User web6" info@mydomain.ch

pitu
05.07.05, 11:21
tambu:~ # touch mist
tambu:~ # tail -n1000 mist
tambu:~ # echo $?
0
tambu:~ # grep web mist
tambu:~ # echo $?
1
tambu:~ #


der unterschied ist der rueckgabewert. "tail -n 1000"sucht dir die letzten 1000 Zewilen raus, oder weniger, wenn weniger da sind. der returnwert ist "OK". "grep" sucht dir die Zeilen mit dem Wort raus, ist es nicht da, gibt es einen Fehler zurueck.

wie waere es mit:


tambu:~ # grep web mist |tail -n 1000
tambu:~ # echo $?
0
tambu:~ #


Und natuerlich die Sache mit der Falschen Pipe, ich bin jetzt auf den null-message body eingegangen, ich kann mir vorstellen, dass der bei "nur grep" auch kommt, wegen dem returnstatus...