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 * * *