je veux exécuter un script deux fois par jour à 00:00 et 13:30, alors j'écris:
0,30 0,13 * * *
cela me semble faux, car ainsi, le script sera lancé à 00h00, 00h30, 13h00 et 13h30. Une idée ?
Pourquoi ne pas mettre en deux entrées cron? Un pour 00h00 et un pour 13h30? Je ne pense pas que vous puissiez faire ce que vous voulez en une entrée, car les définitions de deux minutes s'appliqueront aux définitions des deux heures (comme vous l'avez identifiée).
L'alternative est peut-être d'exécuter un script à 00:00. Ce script exécuterait votre script d'origine, attendrait 13,5 heures, puis l'exécuterait à nouveau. Ce serait facile à faire via une simple commande de veille, mais je pense que c'est peu intuitif , et je ne suis pas sûr de savoir comment cron
gère des processus aussi longs (que se passe-t-il si vous éditez la crontab
- tue-t-il un travail créé etc.)
Essayez ceci: 00 01,13 * * *
il fonctionnera à 1 heure du matin et à 1 heure du matin.
Vous ne pouvez pas faire cela avec cron sur une seule ligne . Vous devez créer 2 lignes séparées comme ceci:
# Will run "YourCommand" at 00:00
0 0 * * * YourCommand
# Will run "YourCommand" at 13:30
30 13 * * * YourCommand
Vous pouvez également exécuter une commande toutes les x heures en une seule ligne, comme suit:
# Will run "YourCommand" every 12 hours
0 */12 * * * YourCommand
essayez ...
00,30 00,13 * * * [ `date +%H%M` == 1330 ] || [ `date +%H%M` == 0000 ] && logger "its time"
30 0,13 * * * somecommand.sh
Ceci n’est qu’un pur exemple, mais vous verrez qu’il s’agit d’une entrée cron qui se déroulera à 0h30 puis à 13h30 (13 correspond à 1 dans l’heure militaire). Il suffit de séparer les heures par une virgule ou d'une section du cron.