Aller au contenu
Deploy
Parcourir la documentation

Planifier des tâches cron sur votre serveur

Exécutez des commandes à heures fixes avec cron : choisissez une fréquence ou une expression cron, lancez une tâche tout de suite et lisez son log.

Voir en Markdown Mis à jour le 7 octobre 2026

La page Planificateur d'un serveur gère ses tâches planifiées : des commandes que cron exécute à heures fixes, comme chaque minute, chaque nuit ou le premier du mois. Utilisez-la pour le planificateur Laravel, des scripts de nettoyage, des rapports ou tout ce qui doit s'exécuter selon un calendrier puis se terminer.

Chaque tâche est écrite dans son propre fichier dans /etc/cron.d sur le serveur : les tâches peuvent donc être ajoutées et supprimées indépendamment, sans toucher à la crontab de quiconque. Les planifications suivent le fuseau horaire du serveur, affiché en haut de la page et modifiable dans les paramètres du serveur.

La page Planificateur avec les tâches par défaut et une tâche du planificateur Laravel chaque minute
Tâches planifiées d'un serveur

Planifier une tâche

  1. Ouvrez le serveur et choisissez Planificateur dans la barre latérale.
  2. Cliquez sur Planifier une tâche.
  3. Saisissez la Commande, par exemple php /home/vimonto/example.com/current/artisan schedule:run.
  4. Saisissez éventuellement un Nom, pour reconnaître la tâche dans la liste.
  5. Choisissez sous quel utilisateur elle s'exécute dans Exécuter en tant que : l'utilisateur système (vimonto par défaut) ou root.
  6. Choisissez Quand elle s'exécute (voir ci-dessous).
  7. Cliquez sur Planifier une tâche.

La tâche affiche Ajout jusqu'à ce que son fichier cron soit écrit, puis elle s'exécute à sa prochaine heure prévue.

La commande s'exécute via bash : les pipes, && et les variables fonctionnent tels que vous les saisissez. Les caractères spéciaux propres à cron, comme %, n'ont pas besoin d'être échappés.

Quelles fréquences pouvez-vous choisir ?

Fréquence Expression cron Exécution
Chaque minute * * * * * Chaque minute.
Toutes les heures 0 * * * * Au début de chaque heure.
Chaque nuit 0 0 * * * Chaque jour à minuit.
Hebdomadaire 0 0 * * 0 Chaque dimanche à minuit.
Mensuel 0 0 1 * * Le premier de chaque mois à minuit.
Au redémarrage @reboot Une fois, à chaque démarrage du serveur.
Planification personnalisée la vôtre Ce que vous saisissez sous Planification.

Écrire une expression cron personnalisée

Choisissez Planification personnalisée et saisissez cinq champs sous Planification : minute, heure, jour du mois, mois et jour de la semaine. Chaque champ accepte *, un nombre, une plage (1-5), un pas (*/15) et des listes séparées par des virgules.

Expression Exécution
*/15 * * * * Toutes les 15 minutes.
30 3 * * * Chaque nuit à 3 h 30.
0 9 * * 1-5 À 9 h en semaine.
0 */6 * * * Toutes les six heures.
0 2 1,15 * * À 2 h le 1er et le 15 du mois.

Les noms comme MON ou JAN et les raccourcis comme @daily ne sont pas acceptés dans une planification personnalisée ; utilisez des nombres.

Faire tourner le planificateur Laravel

Le planificateur de Laravel a besoin d'une tâche cron qui exécute schedule:run chaque minute. Le plus simple est d'activer le planificateur pour le site sur sa page files d'attente et planificateur : Vimonto Deploy crée alors la tâche pour vous, avec le bon chemin et le bon utilisateur, et elle apparaît dans cette liste.

Pour l'ajouter à la main, planifiez cette commande Chaque minute sous l'utilisateur système :

php /home/vimonto/example.com/current/artisan schedule:run

Utilisez le répertoire current du site pour que la tâche exécute toujours le code en ligne. Une tâche créée ainsi par le site porte le badge Via Planificateur ; voir Tâches des fonctionnalités de site.

Exécuter une tâche immédiatement

Ouvrez le menu d'actions (⋯) d'une tâche et choisissez Exécuter maintenant. La commande s'exécute immédiatement sous l'utilisateur de la tâche, depuis son répertoire personnel. Sa sortie apparaît dans la tâche sur la page Activité : c'est le moyen le plus simple de tester une nouvelle tâche.

Lire le log

Cliquez sur Log à côté d'une tâche pour voir les 300 dernières lignes affichées par ses exécutions planifiées (sortie standard et erreurs ensemble), récupérées sur le serveur au moment du clic. Chaque exécution ajoute sa sortie à /var/log/vimonto/cron-{id}.log, sous une ligne indiquant la date et l'heure de son démarrage, par exemple --- 2026-10-07T03:30:00+02:00. Une tâche qui n'affiche rien ne laisse que cette ligne : vous voyez quand même qu'elle a tourné.

Une fois par jour, un log de plus de 5 Mo est mis de côté : un fichier plus ancien est conservé et tout ce qui est plus ancien est supprimé, pour qu'une tâche bavarde ne puisse pas remplir le disque. Le log est supprimé quand vous supprimez la tâche. La sortie de Exécuter maintenant n'est pas écrite dans le log ; elle se trouve dans la tâche sur la page Activité.

Quelles sont les tâches par défaut ?

Chaque serveur est provisionné avec deux tâches, marquées Par défaut :

Tâche Quand Ce qu'elle fait
Mettre à jour Composer Chaque nuit Met à jour Composer vers sa dernière version.
Nettoyer les paquets inutilisés Hebdomadaire Supprime les paquets et les fichiers de paquets en cache dont le serveur n'a plus besoin.

Les deux s'exécutent en root. Vous pouvez les modifier, les exécuter ou les supprimer comme n'importe quelle autre tâche.

Modifier ou supprimer une tâche

Ouvrez le menu d'actions (⋯) et choisissez Modifier pour changer la commande, le nom, l'utilisateur ou la planification ; Enregistrer réécrit le fichier cron. Choisissez Supprimer pour supprimer la tâche ; elle ne s'exécutera plus.

Si l'écriture d'une tâche échoue, elle affiche Échoué ; choisissez Réessayer dans le menu d'actions.

Tâches des fonctionnalités de site

Les tâches créées par une fonctionnalité de site, comme le planificateur Laravel ou Vrai cron pour WordPress, portent un badge Via …, par exemple Via Planificateur. Vous pouvez lire leur Log et les Exécuter maintenant ici, mais Modifier, Réessayer et Supprimer ne sont pas proposés : modifiez-les via la fonctionnalité dans l'en-tête du site, et désactivez la fonctionnalité pour supprimer sa tâche.

Savoir quand une tâche planifiée cesse de tourner

Cron ne vous prévient pas quand une tâche échoue ou cesse de tourner. Utilisez pour cela un heartbeat : cliquez sur Ajouter un heartbeat sur la page monitoring, puis faites appeler l'URL du heartbeat par la tâche quand elle se termine, par exemple en terminant la commande par && curl -fsS https://… (l'URL affichée pour le heartbeat). Si le ping n'arrive pas dans l'intervalle et le délai de grâce définis, Vimonto Deploy envoie un e-mail à l'adresse sous Notifier et notifie les membres de l'organisation, avec un seul e-mail par personne ; voir qui est notifié.

Questions fréquentes

Dans quel fuseau horaire les tâches s'exécutent-elles ?

Dans le fuseau horaire du serveur, affiché en haut de la page Planificateur. Modifiez-le dans les paramètres du serveur ; les tâches suivent alors le nouveau fuseau horaire.

Pourquoi ma tâche ne s'exécute-t-elle pas ?

Ouvrez son Log pour voir ce qu'ont affiché les dernières exécutions planifiées, ou cliquez sur Exécuter maintenant et lisez la sortie sur la page Activité. Les causes courantes sont un chemin relatif (utilisez des chemins complets, ou faites d'abord un cd dans le répertoire), une commande qui nécessite un autre utilisateur, ou une planification personnalisée qui ne correspond pas à ce que vous vouliez. Cron utilise un PATH court (/usr/local/sbin, /usr/local/bin, /usr/sbin, /usr/bin, /sbin et /bin).

Quelle est la différence entre une tâche planifiée et un processus ?

Une tâche planifiée démarre à heures fixes et se termine une fois son travail fait. Un processus tourne en permanence et est relancé par Supervisor quand il s'arrête. Utilisez un processus pour les queue workers, et une tâche planifiée pour des tâches comme le planificateur Laravel.

Une tâche peut-elle s'exécuter plus souvent que chaque minute ?

Non. Le plus petit intervalle de cron est d'une minute. Pour un travail qui doit tourner en continu, utilisez un processus.