Cronjob - PHP Datei ausführen lassen

  • Hallo,


    ich möchte auf meinem vServer die Datei /frei/erfunden/haha.php immer Sonntags um 15:00 Uhr aufrufen lassen.


    Also gebe ich unter Cronjobs:


    Minute: 00
    Stunde: 15
    Tag im Monat: ???
    Monat: ??
    Wochentag: 7


    ein.


    1. Frage: Was muss ich bei Tag im Monat, Monat schreiben?
    2. Frage: Ich habe noch nie mit Cronjobs gearbeitet und ich weiß nicht, welchen Befehl ich eingeben muss, damit die Datei aufgerufen wird.


    Grüße,
    Goekmen

  • Ich weiß jetzt nicht wie man das im Confixx einstellt, aber warum verwendest du nicht einfach einen Crontab, wenn du eh einen vServer hast? :)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Ok, wäre eine Möglichkeit. Jetzt habe ich die Datei bzw. den Ordner aber per Htaccess Passwortgeschützt. Ignoriert der Server das, oder mus sich da was extra vermerken?


  • Versuche es mal mit lynx wenn installiert.


    Hier der befehl


    lynx -dump -auth=user:password http://www.inter.net/to/page.php > /dev/null


    Bei User gibst du den Htaccess User an
    Bei password Das Htaccess PW


    Bei Tag hast du verschiedene Möglichkeiten


    täglich= 1-31
    jeden Monat = 1-12


    Hoffe dir ein wenig geholfen zu haben.

  • Wenn es eine .php ist kannst du auch in die erste Zeile folgendes schreiben:


    #!/usr/bin/php5


    und dann chmod +x Dateiname.php


    Dann kannst du die Datei wie ein Programm aufrufen (Command: /frei/erfunden/haha.php)

  • Ich habe das gleiche Problem, nur ohne vServer, ich habe nur einen Webspace hier. Ich versuche, den Cronjob einzustellen (der Teil mit den Zeiten funktioniert soweit gut) und gebe als Befehl

    Code
    /usr/bin/php /html/ordner/datei.php?parameter=wert

    ein. Da kriege ich aber vom Cron Daemon eine Mail mit dem Inhalt "Could not open input file: /html/ordner/datei.php?parameter=wert". Das gleiche, wenn ich den absoluten Pfad auf dem Server nehme, mit "/var/www/web150/html/ordner/datei.php?parameter=wert".
    Was mache ich falsch? Ich will nicht mehr auf den Cronjob von cronjob.de angewiesen sein :D

  • Wenn du PHP über die Kommandozeile aufrufst (was in dem Fall so ist), dann kannst du keine GET Parameter angeben (?blah=irgendwas), da diese als Dateiname interpretiert werden. Um das so zu machen müsstest du es über lynx oder wget über HTTP abrufen, genauso wie es cronjob.de macht. Ob das bei einem Webspace möglich ist weiß ich allerdings nicht. Alternativ kannst du alle Parameter die du sonst als GET-Parameter anhängst einfach so anhängen:

    Code
    /usr/bin/php /html/ordner/datei.php "ein wert" "noch ein wert" 20 "blah"


    Auf diese kannst du dann im numerischen PHP-Array $_SERVER['argv'] zugreifen. Das ganze kann man noch verfeinern, z.B. mit dieser simplen klasse für Kommandozeilen Parameter in PHP: http://pwfisher.com/nucleus/index.php?itemid=45 - nur um mal ein paar Möglichkeiten zu nennen :)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Vielen Dank, damit wird das dann wohl klappen. Jetzt muss ich nur noch rausfinden, wie viele Minuten ich den Cronjob vor die aktuelle Zeit stellen muss, dass er auch ausgeführt wird (eine Minute reicht meiner Erfahrung nach nicht). Aber ich habe ja Zeit :)