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

139

Comment puis-je exécuter une commande toutes les six heures chaque jour?

J'ai essayé ce qui suit, mais cela n'a pas fonctionné:

/6 * * * * *  mycommand
Gandalf StormCrow
la source
7
duplication possible de Comment exécuter crontab toutes les 2 heures
Cas
2
que diriez-vous * * / 6 * * *
madalinivascu

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
nos
la source
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.

Brian Agnew
la source
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!

rkoots
la source
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.

Andrea Bisello
la source
0
0 */6 * * *

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

Nilesh Patil
la source
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 ...

rkoots
la source
-2

Essayer:

0 */6 * * * command

. * doit

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