Définissez Cronjob pour qu’il s’exécute toutes les 5 minutes De 9h30 à 16h00

Je dois configurer un job cron pour exécuter un script bash toutes les 5 minutes, à partir de 9h30 jusqu’à 16h00.

J’ai le suivant mais, ce n’est pas tout à fait juste …

Cron:

*/5 9-16 * * * /path/to/directory/job.sh > /path/to/log/file/job.log 2>&1 

Ce que vous avez, c’est une ligne qui exécute la commande toutes les cinq minutes entre 09:00 et 16:55 (toutes les plages sont incluses).

Ce que vous essayez de réaliser peut être réalisé relativement simplement avec trois lignes de crontab distinctes :

 30-59/5 9 * * * /path/to/directory/job.sh > /path/to/log/file/job.log 2>&1 */5 10-15 * * * /path/to/directory/job.sh > /path/to/log/file/job.log 2>&1 0 16 * * * /path/to/directory/job.sh > /path/to/log/file/job.log 2>&1 

Le premier traite le dossier entre 09:30 et 09:55 , le second toutes les cinq minutes entre 10:00 et 15:55 , et le dernier le job unique à 16:00 .

Cron n’a pas de syntaxe pour exprimer cela directement, vous aurez donc besoin de 3 lignes distinctes: une pour 9h30-9h55, une autre pour 10h00-15h55 et une autre pour 16h00.

Je pense que c’est correct:

 30-55/5 9 * * *  */5 10-15 * * *  0 16 * * *