web-dev-qa-db-fra.com

exécuter crontab deux fois par jour à 00h et 13h30

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 ?

20
Wassim Sboui

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.)

20
Brian Agnew

Essayez ceci: 00 01,13 * * * 

il fonctionnera à 1 heure du matin et à 1 heure du matin.

46
Ankush

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
6
Angel115

essayez ...

00,30 00,13 * * * [ `date +%H%M` == 1330 ] || [ `date +%H%M` == 0000 ] && logger "its time"
2
Red Cricket

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.

0
David Jeffery