web-dev-qa-db-fra.com

Syntaxe du jour de la semaine Crontab

Dans crontab, le champ Day of the Week s’exécute à partir de 0 - 6 ou 1 -7?

Je vois des informations contradictoires à ce sujet. wikipedia déclare que 0-6 et d’autres sites que j’ai vus sont 1-7.

En outre, quelle serait l'implication ou bien en utilisant 0 ou 7 de manière incorrecte? le cron continuerait-il à fonctionner?

175
Marty Wallace

0 et 7 signifient tous les deux dimanche. Vous pouvez utiliser celui de votre choix. L'écriture de 0-6 ou 1-7 produit le même résultat.

En outre, comme suggéré par @Henrik, il est possible de remplacer des nombres par des noms abrégés, tels que MON, THU, etc.:

0 - Sun      Sunday
1 - Mon      Monday
2 - Tue      Tuesday
3 - Wed      Wednesday
4 - Thu      Thursday
5 - Fri      Friday
6 - Sat      Saturday
7 - Sun      Sunday

Graphiquement:

 ┌────────── minute (0 - 59)
 │ ┌──────── hour (0 - 23)
 │ │ ┌────── day of month (1 - 31)
 │ │ │ ┌──── month (1 - 12)
 │ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or
 │ │ │ │ │                1 - 7 => Monday - Sunday)
 ↓ ↓ ↓ ↓ ↓
 * * * * * command to be executed

Enfin, si vous souhaitez spécifier jour par jour, vous pouvez séparer les jours par des virgules, par exemple, Sun,MON,THU n'exécutera la commande que les dimanches, les lundis des jeudis.

Vous pouvez lire plus de détails dans article de Wikipedia sur Cron .

323
fedorqui
    :-) Sunday    |    0  ->  Sun
                  |  
        Monday    |    1  ->  Mon
       Tuesday    |    2  ->  Tue
     Wednesday    |    3  ->  Wed
      Thursday    |    4  ->  Thu
        Friday    |    5  ->  Fri
      Saturday    |    6  ->  Sat
                  |  
    :-) Sunday    |    7  ->  Sun

Comme vous pouvez le voir ci-dessus, et comme indiqué précédemment, les numéros 0 et 7 sont tous deux attribués à dimanche. Il existe également les jours abrégés de la semaine en anglais répertoriés, qui peuvent également être utilisés dans la crontab.

Exemples d'utilisation de nombres ou d'abréviations

15 09 * * 5,6,0             command
15 09 * * 5,6,7             command
15 09 * * 5-7               command
15 09 * * Fri,Sat,Sun       command

Les quatre exemples se ressemblent tous et exécutent une commande tous les vendredis, samedis et dimanches à 9h15.

en détail

Avoir deux chiffres 0 et 7 pour dimanche peut être utile pour écrire des plages de jours de la semaine commençant par 0 ou se terminant par 7. Vous pouvez donc écrire des plages commençant par dimanche ou se terminant par celle-ci, comme par exemple 0-2 ou 5-7 (les plages doivent commencer par le nombre le plus bas et se terminer par le plus élevé). Les abréviations ne peuvent pas être utilisées pour définir une plage de jours.

98
Henrik

Vous pouvez également utiliser des noms de jour tels que Mon pour lundi, Tue pour mardi, etc. C'est plus convivial.

7
Cyril Bouthors

Utilisation de Spring:

  1. Ce travail commence à 10 h 00 le lundi matin :

    @Scheduled(cron = "0 0 10 * * MON")

  2. Ce travail commence à 10 heures le matin du 1er de chaque mois

    @Scheduled(cron = "0 0 10 1 1/1 ?")

0
Taras Melnyk