web-dev-qa-db-fra.com

Quelle est la syntaxe correcte pour exécuter cron toutes les 4 heures?

J'ai la syntaxe suivante (qui je pense est correcte?) Mais elle exécute la commande toutes les minutes!

* */4 * * * /cmd.sh
63
erotsppa
0 0,4,8,12,16,20 * * * /cmd.sh

C'est probablement comme ça que je le ferais. Cela exécutera le travail toutes les 4 heures, aux heures de 00:00, 04:00, 08:00 12:00, 16:00, 20:00.

C'est juste une façon un peu plus verbeuse d'écrire */4, mais cela devrait fonctionner de la même manière.

64
phuzion

Le message d'origine, avant l'édition, montrait la configuration comme suit:

  • */4 * * * /cmd.sh

L'affiche n'était pas familière avec Markdown et a mis un astérisque dans la première colonne, le faisant apparaître comme une balle. J'ai modifié leur message pour refléter ce qu'ils avaient l'intention de publier:

* */4 * * * /cmd.sh

Dans cette configuration, l'affiche obtiendrait le comportement observé: le travail s'exécutera une fois par minute pendant des heures qui sont également divisibles par 4.

Pour éviter de courir une fois par minute, un nombre est nécessaire dans la première colonne, comme ceci:

15 * * * * whatever...

Cela se déroulera à la 15e minute après chaque heure.

Mettre tout cela ensemble: Pour exécuter une fois par heure pendant des heures qui sont divisibles par 4 uniformément, utilisez cette syntaxe:

15 */4 * * * whatever...
76
Evan Anderson

Faites un crontab -e puis ajoutez l'entrée suivante

0 */4 * * * path_to_the_script

Ce sera le script toutes les 4 heures.

28

Le problème est le * dans la première colonne

'* */2 * * */chemin-vers-script'

cela se traduit par une course à chaque minute de l'heure, mais ne le faites que toutes les 2 heures

9
charlie