Comment exécuter cron une fois, tous les jours à 22 h


178

J'étais entré:

* 22 * * * test > /dev/null

Cependant, je suis informé par e-mail que cela fonctionne toutes les minutes. Je suis confus je suppose parce que je pensais que c'était correct pour ce que je voulais.


3
Ce site vous expliquera tout calendrier cron: crontab.guru
— Bruno Finger

Réponses:


369

Il tourne toutes les minutes de l'heure 22, je suppose. Essayez ce qui suit pour l'exécuter toutes les premières minutes de l'heure 22:

0 22 * * * ....

Bien que l'heure 22 puisse être relativement épargnée, veuillez considérer le premier cas de cette question
— Martin Thoma

@MartinThoma essaie toujours d' man cronabord, vous devriez trouver ce que vous cherchez.
— Marc Simon

N'oubliez pas de vérifier la date du système, il m'est arrivé de paramétrer crontab pour démarrer un travail à 22, mais il a en fait commencé à 23 car le système était UTC (donc 22 pour le système était 23 pour moi en GMT).
— nnsense

J'ai voté pour cette réponse mais je connaissais cette règle ... de toute façon je voulais confirmer ma connaissance silencieuse: D
— rnrneverdies

154

Voici quelques exemples supplémentaires

  • Exécuter toutes les 6 heures à 46 minutes après l'heure:

    46 */6 * * *

  • Courir à 2 h 10:

    10 2 * * *

  • Courir à 3 h 15:

    15 3 * * *

  • Courir à 4 h 20:

    20 4 * * *

  • Courir à 5 h 31:

    31 5 * * *

  • Diffusion à 17 h 31:

    31 17 * * *



25

Voici ce que je regarde à chaque fois que j'écris une nouvelle entrée crontab:

Pour commencer l'édition à partir du type de terminal:

 zee$ crontab -e

ce que vous allez ajouter au fichier crontab:

0 22 * * 0  some-user /opt/somescript/to/run.sh

Ce que cela veut dire:

[ 
+ user => 'some-user',      
+ minute => ‘0’,             <<= on top of the hour.
+ hour => '22',              <<= at 10 PM. Military time.
+ monthday => '*',           <<= Every day of the month*
+ month => '*',              <<= Every month*
+ weekday => ‘*’,            <<= Everyday (0 thru 6) = sunday thru saturday
] 

Vérifiez également quel shell votre machine exécute et nommez le fichier en conséquence OU il ne s'exécutera pas.

Vérifiez la coque avec echo $SHELLouecho $0

Ce peut être "Bourne shell (sh), Bourne again shell (bash), Korn shell (ksh)..etc"


1

La syntaxe de crontab

* * * * * 

Minute(0-59) Hour(0-24) Day_of_month(1-31) Month(1-12) Day_of_week(0-6) Command_to_execute

Votre syntaxe

* 22 * * * test > /dev/null

votre travail s'exécutera toutes les minutes à 22h00 toute la semaine, le mois et l'année.

l'ajout d'une option (0-59) à l'endroit des minutes l'exécutera une fois à 22h00 toute la semaine, le mois et l'année.

0 22 * * * command_to_execute 

Source https://www.adminschoice.com/crontab-quick-reference

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.