Qu’est-ce qu’un cron job et comment configurer des tâches planifiées

Un cron job est une tâche créée à l’aide de cron, un outil de planification et d’automatisation des tâches futures sur les systèmes d’exploitation de type Unix.
La mise en place d’un cron job est très bénéfique car vous n’aurez pas à effectuer des tâches répétitives manuellement, ce qui garantit l’efficacité et un minimum d’erreurs humaines.
Dans cet article, nous expliquerons les bases des cron jobs, leurs types, leur syntaxe, les chaînes spéciales et les permissions. Nous partagerons également les meilleures pratiques des cron jobs et fournirons des exemples de commandes pour vous aider à comprendre comment utiliser un cron job.

Sommaire
À quoi sert un cron job ?
Grâce à un cron job, les administrateurs système peuvent automatiser la maintenance, la surveillance de l’espace disque et les sauvegardes à intervalles réguliers. Les cron jobs sont donc idéales pour les ordinateurs fonctionnant en continu, tels que les serveurs privés virtuels. Ils sont également utiles aux développeurs web, car ils peuvent mettre en place des cron jobs simultanées à différents intervalles pour sauvegarder un site, vérifier les liens cassés et vider son cache.
Comment fonctionne un cron job
Cron est un daemon – un processus d’arrière-plan exécutant des tâches non interactives. Un fichier cron est un fichier texte contenant des commandes à exécuter périodiquement à une heure donnée.
Le fichier de configuration de la table cron ou crontab est /etc/crontab par défaut. Seuls les administrateurs système peuvent modifier le fichier crontab du système. Toutefois, comme les systèmes d’exploitation de type Unix prennent en charge plusieurs administrateurs, les utilisateurs peuvent créer leurs propres fichiers pour programmer des tâches spécifiques.
Bien que pratiques, un cron job présente plusieurs limites :
- L’intervalle le plus court entre deux tâches est de 60 secondes. Les utilisateurs ne peuvent régler les paramètres d’intervalle des cron jobs que sur une minute ou plus.
- Les tâches manquées doivent être réinitialisées manuellement. Les administrateurs ne peuvent pas distribuer les cron jobs à plusieurs ordinateurs sur un réseau. Par conséquent, si le cron de l’ordinateur tombe en panne, les tâches planifiées ne s’exécuteront pas. Vous devez redémarrer manuellement les tâches manquées.
- Pas de mécanisme de rappel automatique. Cron est conçu pour s’exécuter à une heure donnée. Si une tâche échoue, elle ne s’exécutera pas avant la prochaine heure programmée. Cron n’est donc pas adapté aux tâches incrémentielles.
- Pas de variables d’environnement. Crontab ne peut pas lire les variables d’environnement de plusieurs fichiers contenant des données de configuration nécessaires au bon fonctionnement de certaines applications.
Si vous souhaitez automatiser une tâche unique, nous vous recommandons d’utiliser une autre méthode de planification.
Conseil de pro
Avant de créer un cron job, assurez-vous que votre script fonctionne correctement. Pour cela, ouvrez-le dans votre navigateur via son URL ou exécutez-le via SSH, selon son type. En cas de problème, contactez l’équipe de support de votre hébergeur pour obtenir de l’aide.
Syntaxe de Crontab

Avant de configurer des cron jobs, vous devez comprendre la syntaxe et le formatage de cron afin de vous assurer que le script s’exécute correctement. La syntaxe de la crontab se compose de cinq champs dont les valeurs possibles sont les suivantes :
- Minute. La minute de l’heure à laquelle la commande sera exécutée, entre 0 et 59.
- Heure. L’heure à laquelle la commande sera exécutée, comprise entre 0 et 23 en notation 24 heures.
- Jour du mois. Date du mois à laquelle l’utilisateur souhaite que la commande soit exécutée, comprise entre 1 et 31.
- Mois. Le mois au cours duquel l’utilisateur souhaite que la commande soit exécutée. Il est compris entre 1 et 12, représentant les mois de janvier à décembre.
- Jour de la semaine. Jour de la semaine où la commande doit être exécutée, compris entre 0 et 6. La valeur représente le dimanche-samedi. Dans certains systèmes, la valeur 7 représente le dimanche.
Important ! Soyez prudent lorsque vous planifiez des cron jobs pour différents fuseaux horaires, et assurez-vous que votre configuration est correcte.
En plus de la syntaxe, vous devez comprendre les opérateurs des tâches cron pour modifier la valeur de chaque champ. Vous devez utiliser correctement ces opérateurs dans tous les fichiers crontab pour garantir l’exécution de vos commandes :
- Astérisque (*). Cet opérateur indique toutes les valeurs possibles dans un champ. Par exemple, écrivez un astérisque dans le champ Minute pour que le travail cron s’exécute toutes les minutes.
- Virgule (,). Opérateur permettant d’énumérer plusieurs valeurs. Par exemple, en écrivant 1,5 dans le champ du jour de la semaine, le travail sera programmé pour être exécuté tous les lundis et vendredis.
- Trait d’union (-). Les utilisateurs peuvent déterminer une plage de valeurs. Inscrivez 6-9 dans le champ Mois pour configurer un cron job de juin à septembre.
- Séparateur (/). Ce séparateur divise une valeur. Si vous souhaitez exécuter un script toutes les douze heures, écrivez */12 dans le champ Heure.
- Dernier (L). Les utilisateurs peuvent utiliser cet opérateur dans les champs du jour du mois et du jour de la semaine. Par exemple, écrire 3L dans le champ du jour de la semaine signifie le dernier mercredi du mois.
- Jour de la semaine (W). Un opérateur qui détermine le jour de semaine le plus proche à partir d’une heure donnée. Par exemple, si le 1er du mois est un samedi, le fait d’écrire 1W dans le champ du jour du mois exécutera la commande le lundi 3.
- Hash (#). Un opérateur pour le champ du jour de la semaine qui détermine un jour spécifique du mois, en utilisant un nombre entre 1 et 5. Par exemple, 1#2 signifie le deuxième lundi du mois.
- Point d’interrogation (?). Cet opérateur n’indique aucune valeur spécifique pour les champs jour du mois et jour de la semaine. Il est généralement remplacé par l’heure de démarrage du daemon cron.
Conseil de pro
Dans Vixie cron, vous pouvez combiner les séparateurs avec des plages pour spécifier des valeurs par pas, telles que 1-2/12. Pour en savoir plus sur l’utilisation de l’opérateur, consultez le manuel de cron.
Si vous n’êtes pas sûr de pouvoir écrire manuellement la syntaxe cron, utilisez des outils gratuits tels que Crontab Generator ou Crontab.guru pour générer les chiffres exacts de l’heure et de la date de votre commande.
Exemples de syntaxe Cron
Pour vous aider à mieux comprendre la syntaxe de cron, voici une liste d’exemples de commandes permettant de gérer le système à l’aide de cron jobs :
Exemple | Explication |
0 0 * * 0 /root/backup.sh | Effectuer une sauvegarde tous les dimanches à minuit. |
0 * * * 1 /root/clearcache.sh | Vider la mémoire cache toutes les heures le lundi. |
0 6,18 * * * /root/backup.sh | Sauvegarder les données deux fois par jour, à 6 heures et à 18 heures. |
*/10 * * * * /scripts/monitor.sh | Effectuer un contrôle toutes les 10 minutes |
*/15 * * * * /root/backup.sh | Effectuer une sauvegarde toutes les 15 minutes. |
* * 20 7 * /root/backup.sh | Effectuez une sauvegarde toutes les minutes le 20 juillet. |
0 0 * * 2 * /root/backup.sh | Effectuer une sauvegarde à minuit tous les mardis. |
* * * 1,2,5 * /scripts/monitor.sh | Effectuer un contrôle toutes les minutes en janvier, février et mai. |
10-59/10 5 * * * /root/clearcache.sh | Vider le cache toutes les 10 minutes à 5 heures du matin, à partir de 5h10. |
0 8 1 */3 * /home/user/script.sh | L’exécution de la tâche doit être trimestrielle, le premier jour du mois à 8 heures. |
0 * * * * /root/backup.sh | Créer une sauvegarde toutes les heures. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh | Inclure plusieurs tâches dans un seul travail cron. Cela permet de planifier l’exécution de plusieurs tâches en même temps. |
@reboot /root/clearcache.sh | Effacez le cache du serveur chaque fois que vous mettez le système sous tension. |
0 8 1-7 * 1 /scripts/script.sh | Exécuter un script le premier lundi de chaque mois à 8 heures. |
5 4 * * 0 /root/backup.sh | Créer une sauvegarde tous les dimanches matin à 4h05. |
15 9 1,20 * * /scripts/monitor.sh | Effectuer des contrôles à 9h15 le 1er et le 20 de chaque mois. |
@hourly /scripts/monitor.sh | Effectuer un contrôle toutes les heures. |
0 0 1,15 * 3 /scripts/script.sh | Exécutez un script à minuit tous les mercredis entre le 1er et le 15 de chaque mois. |
15 14 1 * * /root/clearcache.sh | Vider le cache le premier jour de chaque mois à 14h15. |
15 6 1 1 * /root/backup.sh | Effectuer une sauvegarde tous les 1er janvier à 6h15. |
0 0 * * * /scripts/monitor.sh | Exécutez le script de surveillance une fois par jour à minuit. |
0 0 15 * * /root/clearcache.sh | Vider le cache à minuit le 15 de chaque mois. |
Chaînes spéciales pour les cron jobs
Des chaînes spéciales sont utilisées pour programmer rapidement des cron jobs à certains intervalles de temps sans spécifier les valeurs exactes. Pour les utiliser, écrivez une phrase simple commençant par un @. Voici quelques chaînes spéciales utiles à utiliser dans les commandes :
- @hourly. La tâche sera exécutée une fois par heure.
- @daily ou @midnight. Ces chaînes exécutent la tâche tous les jours à minuit.
- @weekly. Chaîne permettant de planifier des tâches une fois par semaine, le dimanche à minuit.
- @monthly. Cette chaîne spéciale exécute une commande une fois le premier jour de chaque mois.
- @yearly. Utilisez cette chaîne pour exécuter une tâche une fois par an, le 1er janvier à minuit.
- @reboot. Cette chaîne exécute le cron job une fois lors du démarrage du système.
Permissions de Cron
Veillez à définir les autorisations appropriées pour les fichiers cron de votre système afin de permettre l’exécution des tâches. Vous pouvez créer ou modifier deux fichiers pour définir les autorisations – cron.allow et cron.deny.
Si /etc/cron.allow existe, il doit contenir un nom d’utilisateur autorisé à exécuter l’automatisation du cron job. Cependant, si votre système a un /etc/cron.deny contenant un nom d’utilisateur, ce compte ne peut pas utiliser cron.
Comment exécuter des cron jobs
Dans cette section, nous allons vous montrer comment programmer des cron jobs en entrant des commandes dans un programme shell sur un système basé sur Linux, tel que l’hébergement VPS de Hostinger.
Connectez-vous à votre VPS à l’aide de Terminal ou d’un client SSH comme PuTTY. Les utilisateurs de VPS Hostinger peuvent également accéder à l’interface de ligne de commande (CLI) sur leur navigateur web via hPanel.
Conseil de pro
Outre les VPS, les plans d’hébergement infogéré d’Hostinger prennent également en charge les cron jobs. Par exemple, le plan d’hébergement web Business vous permet de programmer un nombre illimité de tâches.
Après avoir accédé à hPanel, naviguez vers le menu VPS à partir de la barre latérale et cliquez sur Gérer sur votre plan. Ensuite, cliquez sur Terminal de navigateur.


Cron est généralement préinstallé par défaut dans toutes les distributions Linux. Sinon, exécutez la commande d’installation en fonction de votre gestionnaire de paquets. Voici la commande pour Ubuntu avec apt :
sudo apt install cron
Avant de procéder aux opérations de base des tâches cron, vous devez comprendre les fichiers de configuration – la crontab du système et la crontab de l’utilisateur.
La crontab système est utilisée pour programmer des tâches essentielles à l’échelle du système, qui ne peuvent être modifiées que par les personnes disposant des droits d’administrateur (root). En revanche, la crontab utilisateur permet de créer et de modifier des tâches qui ne s’appliquent qu’au niveau de l’utilisateur.
Pour modifier la crontab du système, assurez-vous que l’utilisateur actuel dispose des privilèges de root. Poursuivez votre lecture pour découvrir plusieurs opérations de base que cron peut effectuer.

Utilisation d’un cron job pour créer un fichier Crontab
Saisissez l’extrait ci-dessous dans la ligne de commande pour modifier un fichier crontab existant. Si votre système n’en possède pas, la commande en créera automatiquement un nouveau.
crontab -e
Lorsque vous entrez dans crontab -e pour la première fois, il vous est demandé de choisir l’éditeur de texte avec lequel vous souhaitez éditer le fichier, par exemple nano ou vi. Dans l’éditeur de texte, vous pouvez ajouter d’autres commandes ou modifier les commandes existantes.
Utilisation d’un cron job pour afficher une liste de tâches planifiées actives
Pour afficher une liste des tâches actives et planifiées dans votre système, entrez la commande suivante :
crontab -l
Si votre système compte plusieurs utilisateurs, vous pouvez consulter leurs listes de fichiers crontab en entrant la commande ci-dessous en tant que superutilisateur :
crontab -u nom d'utilisateur -l
Utilisation des cron jobs pour obtenir un accès root
En raison des restrictions liées aux privilèges des utilisateurs, certaines commandes ne peuvent être exécutées qu’avec les autorisations de l’utilisateur principal (root). Pour vous donner les privilèges de l’utilisateur root, ajoutez sudo su au début de la commande.
Par exemple, vous avez besoin de sudo su pour exécuter une commande crontab qui modifie les tâches programmées d’autres utilisateurs :
sudo su crontab -u nom d'utilisateur -e
En outre, vous pouvez ajouter des cron jobs au répertoire etc/cron.d pour stocker des scripts d’installation et de mise à jour automatiques. Pour les ajouter à ce répertoire, vous devez disposer d’un accès root et vous conformer aux conventions de nommage de run-parts.
L’utilisateur root peut également placer ses scripts de travail cron dans les répertoires suivants afin de planifier leur exécution :
- /etc/cron.hourly/. Exécutez le script une fois par heure.
- /etc/cron.daily/. Exécutez-le une fois par jour.
- /etc/cron.weekly/. Exécutez-le une fois par semaine.
- /etc/cron.monthly/. Exécutez-le une fois par mois.
Utilisation d’un cron job pour supprimer des tâches planifiées
Pour supprimer toutes les tâches planifiées dans les entrées de la crontab et recommencer depuis le début, tapez la commande suivante :
crontab -r
Vous pouvez également utiliser la commande crontab -i. Elle est similaire à la précédente, sauf que vous aurez une option de confirmation avant de supprimer la crontab :
crontab -i
Conclusion
Le daemon Cron est un service d’un système Unix qui vous permet de créer des scripts d’automatisation pour planifier des tâches. Les cron jobs sont les tâches automatisées à l’aide de cet outil, telles que la mise à jour, l’installation ou la surveillance d’un système.
Pour automatiser des tâches, écrivez la commande crontab dans le fichier cron de votre système. Cette commande contient le script à exécuter et cinq astérisques indiquant l’heure d’exécution du cron job. Modifiez la valeur de ces astérisques et utilisez les opérateurs pour modifier le temps.
Pour exécuter une tâche cron, connectez-vous à votre système d’exploitation Linux à l’aide de Terminal, d’un client SSH ou d’une autre application CLI avec les droits de root. Créez ensuite un fichier crontab et ajoutez le script à l’aide d’un éditeur de texte tel que Nano.
Cron job – FAQ
Quel est le rôle d’un cron job ?
Les cron jobs sont des commandes Linux permettant d’automatiser les tâches répétitives sur votre serveur. Ils vous permettent de planifier des tâches pour votre système, comme la mise à jour, l’installation ou la surveillance, à l’aide d’une seule commande.
Quelle est l’utilité de * * * * * dans Cron ?
* * * * * est un caractère générique pour l’expression de la programmation cron, ce qui signifie que votre tâche cron doit être exécutée toutes les minutes, quels que soient l’heure, le jour, la date ou le mois.
Comment exécuter une tâche Cron ?
Connectez-vous à votre serveur en tant qu’utilisateur root via SSH en utilisant PuTTY, Terminal, ou le terminal de navigateur intégré à Hostinger. Créez ensuite un fichier à l’aide de la commande crontab -e.
Choisissez un éditeur pour visualiser le fichier et ajoutez votre script de travail cron au fichier crontab vide. Enregistrez le fichier une fois que vous avez terminé pour activer l’automatisation.
Commentaires
June 29 2022
Bonjour Ismael, J'ai un petit problème je dois installer cette tache et je ne sais pas comment m'y prendre To Setup Crontab In order to run SuiteCRM Schedulers, edit your web server user's crontab file with this command: sudo crontab -e -u u73959030 ... and add the following line to the crontab file: * * * * * cd /homepages/36/d477259515/htdocs/medium; php -f cron.php > /dev/null 2>&1 You should do this only after the installation is concluded. MErci d avances, Thierry
June 30 2022
Bonjour Thierry, j'espère que vous allez bien. Vous avez besoin de modifier le fichier crontab, chose que vous pouvez faire en utilisant la commande "crontab -e". Une fois que vous y êtes, vous devrez entrer la commande mentionnée pour exécuter SuiteCRM, et il existe une ressource en anglais qui explique le processus étape par étape. Mais Si vous avez besoin d’aide n’hésitez pas à contacter notre équipe de succès client sur cette adresse mail: fr@hostinger.com Merci