web-dev-qa-db-fra.com

Utilisation de crontab pour exécuter le script toutes les minutes et une autre toutes les 24 heures

J'ai besoin d'une syntaxe de crontab qui devrait exécuter un PHP script /var/www/html/a.php spécifique toutes les minutes. L'exécution de chaque minute doit commencer à 00:00. L'autre tâche qui doit exécuter un script à 00:00 /var/www/html/reset.php (une fois toutes les 24 heures).

313
Michael

chaque minute:

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

toutes les 24 heures (tous les minuit):

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

Voir cette référence pour savoir comment crontab fonctionne: http://adminschoice.com/crontab-quick-reference , et cet outil pratique pour créer cron jobx: http: //www.htmlbasix. com/crontab.shtml

578
Jan Hančič

C'est le format de/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

Je recommande de copier-coller cela dans le haut de votre fichier crontab pour que vous ayez toujours la référence à portée de main. Les systèmes RedHat sont configurés de cette manière par défaut.

Pour exécuter quelque chose à chaque minute:

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

Pour exécuter quelque chose à minuit chaque jour:

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

Vous pouvez inclure/usr/bin/php dans la commande à exécuter ou rendre les scripts php directement exécutables:

chmod +x file.php

Commencez votre fichier php avec un Shebang afin que votre shell sache quel interpréteur utiliser:

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