tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
738
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Jörgi15 Tutorials.de Gastzugang
    Ich habe das folgende kleine Shellskript:

    #!/bin/bash
    /www/htdocs/cms/test/execute/cli-scripts.phpsh mail

    Dieser Befehl sorgt dafür, dass mir das aufgerufene Skript eine Mail schickt.
    Ich könnte auch ein Skript aufrufen, das bloß eine Datei schreiben soll. Klappt als Cronjob auch nicht...

    Wenn ich das auf der Shell ausführe, funktioniert es.
    Eine Ausführung als Cronjob funktioniert aber einfach nicht.

    Ich habe irgendwas von Umgebungsvariablen gelesen, die gesetzt sein sollen (PATH=...).
    Davon hab ich keine Ahnung, aber jedenfalls die Variable "PATH" ist in beiden Fällen mit dem gleichen Inhalt gefüllt.
     

  2. #2
    Jörgi15 Tutorials.de Gastzugang
    Wenn ich in das Skript am Ende einen Befehl eintrage, der mir eine Zeile in eine Datei schreibt, shee ich, dass der Cronjob da wohl ankommt.

    Aber da muss ein Fehler in dem ausgeführten PHP-Skript sein.

    Gibt es eine Möglichkeit, bei Ausführung als Cronjob eine Ausgabe davon zu erhalten?
     

  3. #3
    Adrian_Broher Adrian_Broher ist offline Mitglied Gold
    Registriert seit
    Aug 2007
    Beiträge
    166
    Zitat Zitat von Jörgi15 Beitrag anzeigen
    Dieser Befehl sorgt dafür, dass mir das aufgerufene Skript eine Mail schickt.
    Ew. man mail.

    Zitat Zitat von Jörgi15 Beitrag anzeigen
    Gibt es eine Möglichkeit, bei Ausführung als Cronjob eine Ausgabe davon zu erhalten?
    Sicher gibt es die.

    Hier ein moeglicher Weg mittels stream redirect.

    [sh]
    #!/bin/bash
    /www/htdocs/cms/test/execute/cli-scripts.phpsh mail &> /name/of/log/file[/sh]

    Schreibt den stdout wie auch den den strderr in die Datei /name/of/log/file.

    Ein weiterer waere eine Eintragung der MAILTO Variable in die Crontab.
     
    I'm not slacking off!

    My code's just compiling.

  4. #4
    Jörgi15 Tutorials.de Gastzugang
    Hi Adrian, vielen Dank für die Idee.

    Dass mir das Skript nur eine Mail schickt, ist bloß ein Proof of Concept. Wenn es läuft, soll es Wartungsarbeiten an einer Homepage durchführen.

    Wenn ich das Script wie von dir empfohlen modifizieren, erhalte ich folgendes als Ausgabe:

    X-Powered-By: PHP/5.2.8
    Content-type: text/html

    /www/htdocs/cms/test/execute/cli-scripts.phpsh mail &> /www/htdocs/cms/test/ausgabe.txt

    Sprich mir wird der Inhalt des Shell-Skripts ausgegeben (ohne Shebang-Zeile). Das war wohl nichts...
     

  5. #5
    Avatar von Raubkopierer
    Raubkopierer Raubkopierer ist offline Mitglied Diamant
    Registriert seit
    Feb 2007
    Ort
    Saultitz (Sachsen)
    Beiträge
    1.700
    Blog-Einträge
    7
    Du hast das Skript aber auch mit entsprechenden execute-Rechten versehen damit es vom crond entsprechend gestartet werden kann?
     
    Albert Einstein sagte einmal:
    Es gibt 2 Dinge die unendlich sind: Das Universum und die Dummheit der Menschen. Beim Ersten bin ich mir allerdings nicht ganz sicher.

    Stoppt die Vorratsdatenspeicherung!

  6. #6
    Jörgi15 Tutorials.de Gastzugang
    Du hast das Skript aber auch mit entsprechenden execute-Rechten versehen damit es vom crond entsprechend gestartet werden kann?
    Meinst du damit die Dateiberechtigungen? Die stehen auf 750...
    Und auf der Shell läuft es ja auch.
     

  7. #7
    Adrian_Broher Adrian_Broher ist offline Mitglied Gold
    Registriert seit
    Aug 2007
    Beiträge
    166
    Zitat Zitat von Jörgi15 Beitrag anzeigen
    Meinst du damit die Dateiberechtigungen? Die stehen auf 750...
    Und auf der Shell läuft es ja auch.
    Wer ist Besitzer der Datei? Unter welchem Benutzer laeuft die Crontab?
     
    I'm not slacking off!

    My code's just compiling.

  8. #8
    Jörgi15 Tutorials.de Gastzugang
    Wer ist Besitzer der Datei? Unter welchem Benutzer laeuft die Crontab?
    ls -all gibt aus:
    -rwx-r-x-xxx 1 nobody 122 2009-12-19 12:51 script

    Wie bekomme ich das mit dem Cronjob raus? Es ist ein Shared-Server, bei dem ich keinen Zugriff auf crontab -l habe. Ich richte den Cronjob "indirekt" durch ein Kundenmenü ein: Da muss man nur den Pfad zu der auszuführenden Datei angeben...
     

Ähnliche Themen

  1. Perl-Skript wird nicht ausgeführt
    Von mille im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 4
    Letzter Beitrag: 11.02.10, 11:00
  2. jQuery: out-Event wird gefeuert aber nicht ausgeführt
    Von Avorin im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 03.01.10, 22:23
  3. Antworten: 3
    Letzter Beitrag: 08.04.08, 16:06
  4. Antworten: 8
    Letzter Beitrag: 11.11.04, 09:53
  5. Antworten: 7
    Letzter Beitrag: 24.07.03, 12:58