Come eseguire un cronjob each X minuti?

Sto eseguendo uno script PHP in un cronjob e voglio submit email each 5 minuti

Il mio cronjob corrente (crontab):

10 * * * * /usr/bin/php /mydomain.in/cromail.php > /dev/null 2>&1 

Il cronmail.php è il seguente:

 <?php $from = 'D'; // sender $subject = 'S'; $message = 'M'; $message = wordwrap($message, 70); mail("[email protected]", $subject, $message, "From: $from\n"); ?> 

Ma non ho ricevuto un'e-mail in 30 minuti con questa configuration.

    In un file crontab , i campi sono:

    • minuto dell'ora.
    • ora del giorno
    • giorno del mese.
    • mese dell'anno.
    • giorno della settimana.

    Così:

     10 * * * * blah 

    significa eseguire blah a 10 minuti each ora.

    Se vuoi each cinque minuti, usa entrambi:

     */5 * * * * blah 

    significa each minuto ma solo each cinque, oppure:

     0,5,10,15,20,25,30,35,40,45,50,55 * * * * blah 

    per i vecchi eseguibili di cron che non capiscono la notazione */x .

    Se sembra ancora che non funzioni dopo, cambia il command in qualcosa di simile:

     date >>/tmp/debug_cron_pax.txt 

    e controlla quel file per assicurarti che qualcosa venga scritto each cinque minuti. Se è così, c'è qualcosa di sbagliato nei tuoi script PHP. In caso contrario, c'è qualcosa di sbagliato nel demone cron .

    Il tuo CRON dovrebbe assomigliare a questo:

    */5 * * * *

    CronWTF è davvero utile quando devi testare le tue impostazioni CRON.

    Potrebbe essere una buona idea quella di redirect l'output in un file di log in modo da poter vedere se il tuo script sta generando errori, dal momento che non li vedrai sul tuo terminal.

    Prova anche a usare uno shebang nella parte superiore del tuo file PHP, in modo che il sistema sappia where trovare PHP. Ad esempio:

    #!/usr/bin/php

    in questo modo puoi call l'intera cosa in questo modo

    */5 * * * * php /path/to/script.php > /path/to/logfile.log

    Stai impostando il cron per l'esecuzione al 10 ° minuto in each ora.
    Per impostarlo every 5 mins cambia in */5 * * * * /usr/bin/php /mydomain.in/cronmail.php > /dev/null 2>&1

    2 passaggi per verificare se un cronjob funziona:

    1. Accedi al server con l'utente che esegue il cronjob
    2. Esegui manualmente il command php:

      / usr / bin / php /mydomain.in/cromail.php

    E controlla se viene visualizzato un errore