Utilizzo di crontab per eseguire script ogni minuto e un altro ogni 24 ore [chiuso]


316

Ho bisogno di una sintassi crontab che dovrebbe eseguire uno script PHP specifico /var/www/html/a.phpogni minuto. L'esecuzione ogni minuto deve iniziare alle 00:00. L'altra attività che deve eseguire uno script alle 00:00 /var/www/html/reset.php(una volta ogni 24 ore).

Risposte:


586

ogni minuto:

* * * * * /path/to/php /var/www/html/a.php

ogni 24 ore (ogni mezzanotte):

0 0 * * * /path/to/php /var/www/html/reset.php

Vedi questo riferimento per come funziona crontab: http://adminschoice.com/crontab-quick-reference e questo utile strumento per creare cron jobx: http://www.htmlbasix.com/crontab.shtml


3
Caro Jan! Bella risposta. Che ne dici di eseguire un cron ogni 30 secondi? È così? * * * * * / 30 / path / to / php /var/www/html/a.php?
Flaab,

26
Sfortunatamente non puoi eseguire cron job più frequentemente di ogni minuto. Dovrai usare qualcos'altro per quello.
Jan Hančič,

9
Jan Hančič, puoi farlo. Devi solo usare un semplice trucco descritto qui: stackoverflow.com/a/1034304/1580615
Ruben

È normale eseguire script .php ogni minuto con cron? Può ridurre la produttività del server? Ci sono altri effetti collaterali negativi?
Andrew,

@flaab per ogni 30 secondi puoi provare qualcosa del genere: - * * * * * curl --silent URL> / dev / null 2> & 1 * * * * * sleep 30; curl --silent URL> / dev / null 2> & 1
Shashank Shah

375

Questo è il formato di / etc / crontab:

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

Ti consiglio di copiarlo e incollarlo nella parte superiore del tuo file crontab in modo da avere sempre a portata di mano il riferimento. I sistemi RedHat sono configurati in questo modo per impostazione predefinita.

Per eseguire qualcosa ogni minuto:

* * * * * username /var/www/html/a.php

Per eseguire qualcosa a mezzanotte di ogni giorno:

0 0 * * * username /var/www/html/reset.php

Puoi includere / usr / bin / php nel comando da eseguire, oppure puoi rendere gli script php direttamente eseguibili:

chmod +x file.php

Inizia il tuo file php con un shebang in modo che la tua shell sappia quale interprete usare:

#!/usr/bin/php
<?php
// your code here

42
Questo è il formato di /etc/crontab, che è un file crontab di sistema . Un crontab utente ha un formato diverso, che non include il campo nome utente, poiché viene eseguito come l'utente che lo ha inviato. Se vuoi eseguire un cron job come utente non root, dovresti usare il crontabcomando per inviarlo (e non preoccuparti di dove è archiviato il crontab). Non scherzare /etc/crontabse non è necessario.
Keith Thompson,

umm ... no, ancora non funziona
Madeo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.