Cronjob - Problem

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

  • Cronjob - Problem

    Hallo!
    Also, ich habe mir einen cronjob erstellt.
    wenn ich crontab -l eingebe, dann bekomme ich folende anzeige:
    m131p030:~ username$ crontab -l
    0 * * * * /Volumes/DATEN/websites/vod/web/cronjobs/delete_temp_user.php

    Das heist, er müsste jede Stunde aufgefrufen werden. Das Problem ist nur, dass wenn das script einmal aufgerufen wurde, dann verschwindet es (im übrigen führt es auch nicht die gewünschten operationen aus).

    Die php Datei sieht so aus:
    PHP-Code:
    //Deleting the temp_user which are older than 24 hours
    require_once('../classes/class.php');
    $m m::singleton('de');
    $sql 'DELETE FROM x WHERE....';
    $m->send($sql);
    ?> 
    Wenn ich die PHP Datei im Browser aufrufe, dann funktioniert alles wie gewünscht.

  • #2
    Re: Cronjob - Problem

    Original geschrieben von nobody2
    Wenn ich die PHP Datei im Browser aufrufe, dann funktioniert alles wie gewünscht.
    Ja, weil da die Pfandangaben stimmen. Wenn das Sctipt aber direkt über den php-interpreter angesprochen wird, stimmen sie nicht!

    Der Pad für Dein require müsste zum Bleistift so uungefähr aussehen: /home/www/webx/htm/file.php

    Und jeder Cron sollte ne Log Datei schreiben, damit man sieht, was passiert. Das Script als root über die Shell aufzurufen kann auch sehr hilfreich sein
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      du sollstest das Programm angeben, das dir dein Script ausführen soll.

      also z.B.
      Code:
      0 * * * * /usr/bin/php /path/to/script.php
      Den Pfad zur php findest du mit
      Code:
      whereis php
      heraus
      [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

      [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

      [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
      (from here)

      Kommentar


      • #4
        Hallo!
        Danke schonmal.

        Muss ich in meiner .php Datei bei dem require Befehl den absoluten Pfad vom system-root verwenden, oder reicht es, wenn ich vom Document Root des Apaches ausgehen.
        Vom system-root würde das so aussehen:
        /Volumes/DATEN/websites/vod/web/cronjobs/die_php_datei.php

        Vom Document-root des Apaches so:
        /vod/web/cronjobs/die_php_datei.php

        Wird die .log Datei automatisch erstellt, oder muss ich da etwas einstellen?
        P.S.: Ich hab nen Max OS X 10.4.9

        Kommentar


        • #5
          Ein Cronjob ist nichts anderes als das zeitgesteuerte automatische Ausführen einer Befehlszeile.
          Deine Befehlszeile ist (inzwischen hoffentlich) ungefähr diese:
          0 * * * * /usr/bin/php /path/to/script.php

          Wo kommt da deiner Meinung nach ein Webserver ins Spiel?!

          Fürs Logging leite mal stdout und stderr in eine Datei um.

          Kommentar


          • #6
            Also, mein cronjob sieht mittlerweile so aus:
            crontab -l
            0 * * * * /usr/bin/php /Volumes/DATEN/websites/vod/web/cronjobs/delete_temp_user.php

            Der require befehl sieh so aus:
            require_once('/Volumes/DATEN/websites/vod/web/classes/mysql.class.php');

            mal schaun, obs geht.

            Kommentar

            Lädt...
            X