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.

Benjamin
la source
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 * * * ....
Marc Simon
la source
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 * * *

Abdalla Mohamed Aly Ibrahim
la source
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"

zee
la source
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

Magesh Somasundaram
la source