chronométrage des tâches cron

8

Je voudrais commencer le travail cron à 9h30, puis travailler toutes les 5 minutes, puis arrêter à 16h30 tous les jours. Ce type de planification est-il possible en une seule ou ai-je besoin de deux tâches cron?

mustafa
la source

Réponses:

10

Je pense que quelque chose dans le sens de:

30/5 9-16 * * *  /usr/bin/script_to_run.sh

Voir la page wiki pour plus de détails sur la syntaxe de synchronisation. Je suggère de tester cela avec un script qui enregistre l'heure à laquelle il s'exécute dans un fichier.

#!/bin/bash

echo "Cron ran at: " `date` >> /var/log/crontimetest.log
webtoe
la source
2
j'ai été surpris de voir "30/5" utilisé, j'ai donc regardé le code source de cron, en particulier entry.c, qui analyse chaque ligne d'une crontab. dans la fonction get_range (), il vérifie si le caractère après le premier nombre (30 dans cet exemple) est un «-» ou non. sinon, le '/' n'est jamais vu. c'est un bug; il aurait dû imprimer un avertissement (ou un message d'erreur) de la forme, "'/' n'a de sens qu'après une plage * ou nm". désolé les gars!
Paul Vixie
7

vous aurez besoin de trois entrées crontab:

30-55/5 9 * * * /usr/bin/script-to-run.sh
*/5 10-15 * * * /usr/bin/script-to-run.sh
0-30/5 16 * * * /usr/bin/script-to-run.sh

veuillez ne pas blâmer linux, ou bsd, ou moi, pour la syntaxe bizarre et inutile des entrées crontab. cela a été inventé chez AT&T Bell Labs, puis normalisé dans le cadre de POSIX.

Paul Vixie
la source
4

Je pense que vous avez besoin de trois emplois:

 */5 10-15 * * * yourjob
 0,5,10,15,20,25,30 16 * * * yourjob
 30,35,40,45,50,55 9 * * * yourjob
Sven
la source