Exécution d'une tâche cron sous Linux toutes les six heures


Réponses:


323

Vous avez oublié un *, et vous avez trop de champs. C'est l'heure dont tu dois te soucier

0 */6 * * * /path/to/mycommand

Cela signifie toutes les six heures à partir de 0, c'est-à-dire à l'heure 0, 6, 12 et 18 que vous pourriez écrire comme

0 0,6,12,18 * * * /path/to/mycommand

merci pour la réponse, c'est toutes les 6 heures à partir de quelle heure? le moment où le cron est créé?
Gandalf StormCrow

merci, donc si je voulais l'exécuter à partir de 15h00 toutes les 6 heures, ce serait 15 15,23,05,11 * * * /path/to/mycommand?
Gandalf StormCrow

5
Oui, bien que le premier champ soit la minute, que vous avez défini sur 15, cela signifie 15: 15,23: 15, 05: 15 et 11:15. (ce qui n'est pas toutes les 6 heures, vous auriez pu dire 0 15,21,3,9 * * *)
nos

6

Vous devez inclure un chemin vers votre commande, car cron s'exécute avec un environnement fortement réduit. Vous n'aurez pas toutes les variables d'environnement que vous avez dans votre session shell interactive.

C'est une bonne idée de spécifier un chemin absolu vers votre script / binaire, ou de définir PATH dans le crontab lui-même. Pour aider à déboguer tous les problèmes, je redirigerais également stdout / err vers un fichier journal.


1
merci pour la réponse, mais si je déclare des variables d'environnement dans mon fichier sh comme si export variable=somethingje les utilisais toujours dans ce même script? et j'utilise beaucoup la commande de date dans le script
Gandalf StormCrow

@Gandalf - Oui. Vous pouvez définir toutes vos variables d'environnement dans le script. C'est une bonne idée car cela signifie que votre script est autonome et isolé des autres éléments que vous voudrez peut-être exécuter dans cron
Brian Agnew

5
0 */6 * * * command

Ce sera le moyen idéal de dire 6 heures par jour.

Votre commande dure six minutes!


2
@ArsenArsen Je suis presque sûr que c'était parce que cela n'ajoute rien à la réponse acceptée existante, écrite 4 ans avant.
Adinia

2

Veuillez garder attention à cette syntaxe :

* */6 * * *

Cela signifie 60 fois (toutes les minutes) toutes les 6 heures,

ne pas

une fois toutes les 6 heures.


0
0 */6 * * *

crontab toutes les 6 heures est un programme cron couramment utilisé.


4
Qu'est-ce que cette réponse ajoute que les autres réponses ne font pas? @rkoots a déjà mentionné cette commande exacte.
Au revoir StackExchange

"Couramment utilisé" ? Pourquoi? Peux-tu élaborer?
Peter Mortensen le

0

Vous devez utiliser *

0 */6 * * * /path/to/mycommand

Vous pouvez également vous référer à https://crontab.guru/ qui vous aidera à mieux planifier ...


-2

Essayer:

0 */6 * * * command

. * doit


1
La dernière ligne ici n'a pas beaucoup de sens. Envisageriez-vous de l'élargir?
halfer

1
semble que la réponse est incomplète
ajayramesh
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.