Luise: crontab mit eigener IP-Adresse

Hallo,

habe eine kleinen Webserver privat zu Hause auf Raspberry PI Basis. Tut alles was ich brauche ... zum Glück ;-)

Aber mit dem Crontab habe ich Probleme, d.h. mittlerweile läuft auch diese.

Mit

* * * * * /var/www/ php5 cron.php

oder

* * * * * /var/www/cron.php

hat es nicht funktioniert (habe dann solange gegoogle, bis ich die curl-Lösung gefunden habe), dafür aber mit

* * * * * /usr/bin/curl http://192.168.10.104/cron.php?auto=1

Könnt Ihr mir verraten, wie ich an der Stelle der IP-Adresse die des Gerätes einfügen kann. D.h. wenn ich mein Netzwerk Wechsel, möchte ich diese nicht jedes Mal manuell ändern müssen, damit der Cronjob läuft.

Also, mit welcher Variabel kann ich die IP-Adresse (die mir per DHCP) zugeteilt wurde, im crontab angeben?

Vielen Dank,

Liebe Grüsse, Luise

  1. localhost geht nicht? Wär das einfachste.

    1. localhost geht nicht? Wär das einfachste.

      Perfekt ... hätte ich ja auch selbst darauf kommen können ...
      Liebe Grüsse, Luise

      1. localhost geht nicht? Wär das einfachste.

        Perfekt ... hätte ich ja auch selbst darauf kommen können ...
        Liebe Grüsse, Luise

        Nein. Das ist nicht perfekt, weil es zu viele Programme beschäftigt und damit sehr viel mehr Leistung benötigt als notwendig.

        * * * * * /usr/bin/php5 -f /pfad/zu/cron.php

        wäre richtig, wenn man es jede Minute ausführen will. Voraussetzung ist ein installiertes Paket namens "php5-cli".
        Allerdings sollte die chron.php dann auch keine Ausgaben machen - die landen sonst womöglich (je nach Konfiguration) als Mail beim root. Soweit die chron.php Bezug auf Dateien nimmt sollten diese auch absolute Pfadangaben enthalten.

  2. Tach!

    * * * * * /var/www/ php5 cron.php

    Mit dem Leerzeichen vor dem php5? (Oder meinst du sowas wie cd /var/www/; php5 cron.php?) Mal angenommen, das Leerzeichen ist nicht bei dir drin, liegt die php5 denn überhaupt in /var/www/? Das wäre ungewöhnlich. Der PATH in einer Shell für Nutzer ist üblicherweise deutlich länger als der, den crontab zur Verfügung hat. Man muss da meist genauer angeben, wo das Zeug zu finden ist. Und das gilt auch für Dateien, die als Parameter angegeben sind.

    * * * * * /var/www/cron.php

    In dem Fall müsste /var/www/cron.php ausführbar sein und mit einer Shebang starten.

    dedlfix.

  3. Moin!

    Aber mit dem Crontab habe ich Probleme, d.h. mittlerweile läuft auch diese.

    Mit

    * * * * * /var/www/ php5 cron.php

    Wenn das "/var/www/php5 cron.php" sein soll, wird es scheitern, weil PHP das Skript nicht findet.

    In Crontabs hat man eigentlich nie einen automatische Pfaderweiterung, du musst immer für alles absolute Pfade angeben.

    oder

    * * * * * /var/www/cron.php

    Das wird evtl. scheitern, weil das Skript nicht als Shell-Skript ausführbar ist und eine Shebang-Zeile enthält.

    Die Shebang-Zeile wäre sowas:

    #!/usr/bin/env php  
    <?php // hier geht es normal mit PHP los  
    
    

    Das Skript muss dann ausführbar gemacht werden: chmod +x cron.php

    Es ist allerdings bei beiden Fällen zu beachten, dass das Skript im Kontext des ausführenden Cron-Users läuft, also ggf. andere Rechte gelten, als beim Aufruf über Webbrowser.

    hat es nicht funktioniert (habe dann solange gegoogle, bis ich die curl-Lösung gefunden habe), dafür aber mit

    * * * * * /usr/bin/curl http://192.168.10.104/cron.php?auto=1

    Das hingegen verbrät auf einem Raspberry Pi eventuell recht viele Ressourcen zusätzlich, die nicht sein müssen.

    - Sven Rautenberg