Générateur d’expression cron

Choisissez un modèle ou saisissez une ligne crontab. L’outil explique chacun des cinq champs, dit en langage clair quand la tâche s’exécute et liste ses prochaines exécutions, pour que vous puissiez vérifier une planification avant qu’elle n’aille sur un serveur.

Planifications courantes
Modifier chaque champ
Quand elle s’exécute Toutes les 15 minutes, tous les jours.

Les tâches cron ont besoin d’un serveur toujours allumé. Un petit VPS exécute sauvegardes, rapports et scripts jour et nuit. À partir de 3,02 € par mois aujourd’hui, parmi 2 226 serveurs.

Votre ligne crontab

Sur le serveur, exécutez crontab -e, collez la ligne avec votre propre commande, puis enregistrez. crontab -l liste les tâches que vous avez.

crontab -e
*/15 * * * * /path/to/script.sh >> /var/log/job.log 2>&1
ChampValeurCorrespond à
Minute*/150, 15, 30 et 45
Heure*toute valeur
Jour du mois*toute valeur
Mois*toute valeur
Jour de la semaine*toute valeur

Fonctionne dans votre navigateur : rien de ce que vous saisissez n’est envoyé ailleurs.

Comment c’est calculé

Une ligne crontab commence par cinq champs séparés par des espaces, suivis de la commande à exécuter. Cron les vérifie chaque minute et lance la commande quand la minute, l’heure, le jour du mois, le mois et le jour de la semaine correspondent tous.

┌─ Minute
│ ┌─ Heure
│ │ ┌─ Jour du mois
│ │ │ ┌─ Mois
│ │ │ │ ┌─ Jour de la semaine
* * * * * /path/to/command

Les deux champs de jour se combinent d’une façon qui surprend beaucoup de gens : quand les deux sont restreints, la tâche s’exécute dès que l’un des deux correspond. 0 0 13 * 5 s’exécute chaque 13 du mois et chaque vendredi, pas seulement le vendredi 13. Quand l’un des deux commence par *, les deux doivent correspondre.

Les cinq champs

ChampValeurs autorisées
Minute0–59
Heure0–23
Jour du mois1–31
Mois1–12 ou JAN–DEC
Jour de la semaine0–7 ou SUN–SAT (0 et 7 sont le dimanche)

Caractères spéciaux

  • * correspond à toutes les valeurs du champ.
  • , énumère des valeurs : 1,15 est le 1er et le 15.
  • - est une plage : 1-5 est du lundi au vendredi dans le champ du jour de la semaine.
  • / est un pas : */10 est une valeur sur dix, 5/10 est une valeur sur dix à partir de 5, 9-17/2 une heure sur deux de 9 à 17.
  • @hourly, @daily, @weekly, @monthly et @yearly remplacent les cinq champs ; @reboot s’exécute une fois au démarrage du serveur.

Exemple

30 2 * * 1-5 s’exécute à 02:30 du lundi au vendredi : minute 30, heure 2, n’importe quel jour du mois, n’importe quel mois, et jours de la semaine 1 à 5. Écrite 30 2 * * 1-5 /usr/local/bin/backup.sh dans la crontab, elle lance une sauvegarde chaque nuit ouvrée.

Questions

Que signifie */5 dans cron ?

Une valeur sur cinq du champ. Dans le champ des minutes, */5 exécute la tâche aux minutes 0, 5, 10 et ainsi de suite jusqu’à 55 : toutes les cinq minutes. */15 est tous les quarts d’heure, et */2 dans le champ des heures est une heure sur deux à partir de minuit.

Comment ajouter une tâche cron sur un serveur Linux ?

Exécutez crontab -e avec l’utilisateur sous lequel la tâche doit tourner, ajoutez une ligne avec les cinq champs et la commande, puis enregistrez et fermez l’éditeur. crontab -l affiche les tâches, et les tâches système vont dans un fichier de /etc/cron.d, avec le nom d’utilisateur après les cinq champs.

Quel fuseau horaire cron utilise-t-il ?

Celui du serveur, généralement UTC sur un VPS. 0 3 * * * sur un serveur en UTC s’exécute à 04:00 à Paris en hiver et à 05:00 en été. Certaines versions de cron, comme cronie, acceptent une ligne CRON_TZ= au-dessus des tâches ; sinon convertissez l’heure vous-même.

Faut-il utiliser cron ou un timer systemd ?

Cron est plus simple et fonctionne partout. Un timer systemd demande deux petits fichiers, mais journalise chaque exécution dans le journal, peut rattraper les exécutions manquées pendant que le serveur était éteint (Persistent=true) et empêche deux copies de la même tâche de tourner en même temps.