68 votes

Comment définir une tâche cron à exécuter à une heure précise ?

J'ai une tâche cron qui s'exécute une fois par jour. Mais je voudrais qu'elle s'exécute à minuit ou à une autre heure précise.

1 votes

Pouvez-vous clarifier un peu ? Cherchez-vous des informations sur la façon d'exécuter une tâche cron à une heure précise (par exemple, à 17 h 43), à une heure unique et non répétitive (demain à 3 h 27 et plus jamais), ou autre chose ?

133voto

Bruno J. Araujo Points 1383

Vous pouvez également spécifier les valeurs exactes de chaque gr

0 2,10,12,14,16,18,20 * * *

Il s'agit de 2h00, 10h00, 12h00 et ainsi de suite, jusqu'à 20h00.

D'après la réponse ci-dessus, nous avons :

La virgule, ",", signifie "et". Si la ligne ci-dessus vous laisse perplexe, rappelez-vous que les espaces sont les séparateurs de champs, et non les virgules.

Et de ( Page Wikipedia ) :

*    *    *    *    *  command to be executed
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    │
│    │    │    │    └───── day of week (0 - 7) (0 or 7 are Sunday, or use names)
│    │    │    └────────── month (1 - 12)
│    │    └─────────────── day of month (1 - 31)
│    └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)

J'espère que cela vous aidera :)

--

EDIT :

  • ne manquez pas le 1er 0 (zéro) et l'espace suivant : il signifie "la minute zéro", vous pouvez aussi le mettre à 15 (la 15ème minute) ou des expressions comme */15 (chaque minute divisible par 15, c'est-à-dire 0,15,30)

33voto

Orbit Points 6928

Vérifier

http://www.thesitewizard.com/general/set-cron-job.shtml

pour les spécificités de la mise en place de vos directives crontab.

 45 10 * * *

se déroulera à la 10e heure, 45e minute de chaque jour.

pour minuit... peut-être

 0 0 * * *

2 votes

Et si je ne veux pas de répétitions, mais seulement que le travail soit exécuté une fois à 10:45 ?

0 votes

@user2176576 Exemple : at 10:45 <ENTER> entonces <your command><ENTER><CTRL-D>

0 votes

C'était très utile. Merci pour le lien !

1voto

Mon cas d'utilisation est que j'ai un compte avec compteur. Le transfert de données est limité en semaine, du lundi au vendredi, de 6h à 18h. J'utilise la limitation de la bande passante, mais d'une manière ou d'une autre, des données me parviennent toujours, environ 1 Go par jour !

Je soupçonnais fortement que c'était sickrage ou sickbeard, en faisant un grand nombre de recherches. Ma machine de téléchargement s'appelle "download". Voici la solution que j'ai trouvée, en utilisant la méthode ci-dessus pour démarrer et arrêter la machine de téléchargement, à l'aide de KVM :

# Stop download Mon-Fri, 6am
0 6 * * 1,2,3,4,5 root          virsh shutdown download
# Start download Mon-Fri, 6pm
0 18 * * 1,2,3,4,5 root         virsh start download

Je pense que c'est correct, et j'espère que cela aidera quelqu'un d'autre aussi.

0voto

shilovk Points 70

<a href="https://crontab.guru" rel="nofollow noreferrer">Very helpful visual constructor</a>

Premier exemple tâche cron :

5 4 * * *

fonctionne à :

04:05

Deuxième exemple tâche cron :

5 */1 * * *

fonctionne à :

minute 5 past every hour

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X