|
Qu'est-ce qu'un Cron Job ? Opérations basiques des Cron Jobs Syntaxe du Crontab Chaînes spéciales des Cron Jobs Exemples de Syntaxe Cron Permissions des Cron Jobs |
|---|
Qu'est-ce qu'un Cron Job ?
Cron est un programme utilitaire qui permet aux utilisateurs de planifier des tâches à exécuter de manière répétée à des heures spécifiques. Les tâches programmées dans cron sont appelées des "cron jobs". Les utilisateurs peuvent déterminer le type de tâche qu'ils souhaitent automatiser et à quelle heure elle doit être exécutée.
Cron est un démon - un processus en arrière-plan exécutant des tâches non interactives. Sur Windows, vous pourriez être familier avec les processus en arrière-plan tels que les Services qui fonctionnent de manière similaire au démon cron.
Un fichier cron est un simple fichier texte qui contient les commandes à exécuter périodiquement à des heures spécifiques. La table cron par défaut du système ou le fichier de configuration crontab est /etc/crontab.
Seuls les administrateurs système peuvent modifier le fichier crontab du système. Cependant, les systèmes de type Unix prennent en charge plusieurs administrateurs. Chacun peut créer un fichier crontab et écrire des commandes pour effectuer des tâches à tout moment.
Avec les cron jobs, les utilisateurs peuvent automatiser la maintenance du système, la surveillance de l'espace disque et la planification des sauvegardes. En raison de leur nature, les cron jobs sont excellents pour les ordinateurs qui fonctionnent 24/7, tels que les serveurs.
Bien que les cron jobs soient principalement utilisés par les administrateurs système, ils peuvent également être utiles pour les développeurs web.
Par exemple, en tant qu'administrateur de site web, vous pouvez configurer un cron job pour sauvegarder automatiquement votre site tous les jours à minuit, un autre pour vérifier les liens brisés tous les lundis à minuit, et un troisième pour vider le cache de votre site tous les vendredis à midi.
Cependant, comme tout autre programme, cron présente des limites à prendre en compte avant de l'utiliser :
- L'intervalle le plus court entre les tâches est de 60 secondes. Avec cron, vous ne pourrez pas répéter une tâche toutes les 59 secondes ou moins.
- Centralisé sur un seul ordinateur. Les cron jobs ne peuvent pas être distribués sur plusieurs ordinateurs d'un réseau. Ainsi, si l'ordinateur exécutant cron plante, les tâches programmées ne seront pas exécutées, et les tâches manquées ne pourront être exécutées que manuellement.
- Pas de mécanisme de réessai automatique. Cron est conçu pour s'exécuter à des heures strictement spécifiées. Si une tâche échoue, elle ne sera pas relancée avant la prochaine heure programmée. Cela rend cron inadapté aux tâches progressives.
Si vous souhaitez planifier une tâche ponctuelle pour plus tard, vous devrez peut-être utiliser une autre méthode.
Astuce Pro
Avant de créer un Cron Job, assurez-vous que votre script fonctionne correctement. Pour cela, ouvrez le fichier dans votre navigateur (par URL) ou exécutez-le via SSH, en fonction du type de script que vous avez. Si votre script ne fonctionne pas, contactez les développeurs pour obtenir de l'aide.
Opérations basiques des Cron Jobs
Ce tutoriel vous montrera comment planifier des cron jobs en entrant des commandes dans un programme shell comme Bash sur Linux ou un autre système d'exploitation de type Unix. Apprendre à planifier des cron jobs augmentera considérablement votre efficacité en tant qu'administrateur de VPS. La ligne de commande pour un VPS peut être accessible via PuTTY SSH ou via le terminal basé sur le navigateur.
Avant de procéder aux opérations basiques de cron, il est essentiel de connaître les différents fichiers de configuration des cron jobs :
- Le crontab système. Utilisez-le pour planifier des tâches essentielles à l'échelle du système qui ne peuvent être modifiées qu'avec des privilèges root.
- Le crontab utilisateur. Ce fichier permet aux utilisateurs de créer et de modifier des cron jobs qui s'appliquent uniquement au niveau de l'utilisateur.
Voici quelques opérations basiques que cron peut effectuer :

-
Pour créer ou modifier un fichier crontab, entrez la commande suivante dans la ligne de commande :
crontab -e
Si aucun fichier crontab n'est trouvé sur votre système, la commande en créera automatiquement un nouveau. crontab -e vous permet d'ajouter, de modifier et de supprimer des cron jobs.
-
Vous aurez besoin d'un éditeur de texte comme vi ou nano pour modifier un fichier crontab. Lorsque vous entrez crontab -e pour la première fois, on vous demandera de choisir l'éditeur de texte avec lequel vous souhaitez modifier le fichier.
-
Pour voir une liste des tâches planifiées actives sur votre système, entrez la commande suivante :
crontab -l
Si votre système comporte plusieurs utilisateurs, vous pouvez consulter la liste de leurs fichiers crontab en entrant la commande suivante en tant que superutilisateur :
crontab -u nom_utilisateur -l
Vous pouvez également facilement modifier les tâches planifiées d'autres utilisateurs en saisissant la commande crontab suivante :
sudo su crontab -u nom_utilisateur -e
Pour vous donner des privilèges root, ajoutez sudo su au début de la commande. Certaines commandes, dont celle-ci, ne peuvent être exécutées que par des utilisateurs root.
-
Enfin, pour supprimer toutes les tâches planifiées dans votre fichier crontab et repartir de zéro, tapez la commande suivante :
crontab -r
Alternativement, la commande suivante est identique à crontab -r, mais elle vous demandera une option oui/non avant de supprimer le crontab :
crontab -i
-
En plus de crontab, l'utilisateur root peut également ajouter des cron jobs dans le répertoire /etc/cron.d. C'est particulièrement adapté pour exécuter des scripts pour des installations et des mises à jour automatiques. Gardez à l'esprit que l'utilisateur ajoutant des cron jobs dans ce répertoire doit avoir un accès root et respecter les conventions de nommage de run-parts.
-
Alternativement, l'utilisateur root peut déplacer ses scripts dans les répertoires suivants pour planifier leur exécution :
- /etc/cron.hourly/ - Exécuter tous les scripts une fois par heure
- /etc/cron.daily/ - Exécuter une fois par jour.
- /etc/cron.weekly/ - Exécuter une fois par semaine.
- /etc/cron.monthly/ - Exécuter une fois par mois.
Syntaxe du Crontab

Pour créer un cron job, vous devez d'abord comprendre la syntaxe et le format du crontab. Sinon, la mise en place correcte des cron jobs pourrait ne pas être possible.
La syntaxe du crontab se compose de cinq champs avec les valeurs possibles suivantes :
- Minute. La minute de l'heure où la commande sera exécutée, allant de 0 à 59.
- Heure. L'heure à laquelle la commande sera exécutée, allant de 0 à 23 en notation 24 heures.
- Jour du mois. Le jour du mois où l'utilisateur souhaite que la commande s'exécute, allant de 1 à 31.
- Mois. Le mois dans lequel l'utilisateur souhaite que la commande s'exécute, allant de 1 à 12, représentant ainsi janvier-décembre.
- Jour de la semaine. Le jour de la semaine pour une commande à exécuter, allant de 0 à 6, représentant dimanche-samedi. Dans certains systèmes, la valeur 7 représente dimanche.
Si, par exemple, vous souhaitez configurer un cron job pour exécuter le fichier root/backup.sh tous les vendredis à 17h37, voici à quoi devrait ressembler votre commande cron :
37 17 * * 5 root/backup.sh
Dans l'exemple ci-dessus, 37 et 17 représentent 17h37. Les deux astérisques pour les champs Jour du mois et Mois signifient toutes les valeurs possibles. Cela signifie que la tâche devrait être répétée quel que soit le jour ou le mois. Enfin, 5 représente vendredi. L'ensemble de chiffres est suivi de l'emplacement de la tâche elle-même.
Si vous n'êtes pas sûr d'écrire manuellement la syntaxe cron, vous pouvez utiliser des outils gratuits tels que Crontab Generator ou Crontab.guru pour générer les chiffres exacts pour l'heure et la date souhaitées pour votre commande.
Pour régler l'heure correcte pour votre commande cron, la connaissance des opérateurs des cron jobs est essentielle. Ils vous permettent de spécifier quelles valeurs vous souhaitez entrer dans chaque champ. Vous devez utiliser les bons opérateurs dans tous les fichiers crontab.
Opérateurs des Cron Jobs :
- Astérisque (*). Utilisez cet opérateur pour signifier toutes les valeurs possibles dans un champ. Par exemple, si vous voulez que votre cron job s'exécute toutes les minutes, écrivez un astérisque dans le champ Minute.
- Virgule (,). Utilisez cet opérateur pour lister plusieurs valeurs. Par exemple, écrire 1,5 dans le champ Jour de la semaine planifiera la tâche à effectuer tous les lundis et vendredis.
- Tiret (-). Utilisez cet opérateur pour déterminer une plage de valeurs. Par exemple, si vous voulez configurer un cron job de juin à septembre, écrire 6-9 dans le champ Mois fera l'affaire.
- Séparateur (/). Utilisez cet opérateur pour spécifier un intervalle entre les valeurs. Par exemple, écrire */10 dans le champ Minute signifie que la tâche s'exécutera toutes les 10 minutes (par exemple, 0, 10, 20, 30, etc.).
- Liste des noms (Jour de la semaine uniquement). Utilisez cet opérateur pour spécifier les noms complets des jours de la semaine (dimanche, lundi, etc.). Par exemple, écrire MON,WED,SAT dans le champ Jour de la semaine signifie que la tâche s'exécutera uniquement les lundis, mercredis et samedis.
Chaînes spéciales des Cron Jobs
En plus des opérateurs, il existe quelques chaînes spéciales que vous pouvez utiliser dans votre fichier crontab :
-
@yearly / @annually. Exécutez une tâche une fois par an à minuit du 1er janvier. Vous pouvez utiliser l'un ou l'autre de ces termes.
-
@monthly. Exécutez une tâche une fois par mois à minuit le 1er jour du mois.
-
@weekly. Exécutez une tâche une fois par semaine à minuit le dimanche.
-
@daily / @midnight. Exécutez une tâche une fois par jour à minuit.
-
@hourly. Exécutez une tâche toutes les heures à la première minute (par exemple, 1:00, 2:00, etc.).
-
@reboot. Exécutez une tâche une fois chaque fois que le système est redémarré.
Pour utiliser ces chaînes spéciales, il suffit de les écrire dans le champ de temps approprié du fichier crontab. Par exemple, pour planifier une tâche qui s'exécute une fois par mois le premier jour du mois à minuit, utilisez simplement @monthly dans le champ Minute.
Exemples de Syntaxe Cron
Voici quelques exemples de syntaxe cron pour vous aider à mieux comprendre comment créer des cron jobs :
-
30 2 * * * - Exécuter la tâche à 2h30 du matin tous les jours.
-
0 12 * * 1 - Exécuter la tâche à midi chaque lundi.
-
15 8 1 * * - Exécuter la tâche à 8h15 le premier jour de chaque mois.
-
0 0 * 2 * - Exécuter la tâche à minuit tous les jours du mois de février.
-
@weekly - Utilisez la chaîne spéciale @weekly pour exécuter la tâche tous les dimanches à minuit.
Permissions des Cron Jobs
Lorsque vous créez un cron job, assurez-vous que les permissions sont correctement définies pour que la tâche s'exécute sans problème. Les erreurs de permission peuvent entraîner l'échec de l'exécution de la tâche.
Voici quelques points importants à considérer pour les permissions des cron jobs :
-
Permissions d'accès au script. Assurez-vous que le script que vous prévoyez d'exécuter a les permissions d'exécution appropriées. Vous pouvez utiliser la commande
chmodpour définir les permissions. Par exemple, pour donner des droits d'exécution à un script, utilisez la commande :
chmod +x mon_script.sh
-
Permissions de répertoire. Si votre script ou votre commande cron accède à des fichiers dans un répertoire spécifique, assurez-vous que les permissions de ce répertoire permettent au script d'y accéder.
-
Utilisateur et groupe. Assurez-vous que l'utilisateur ou le groupe sous lequel le cron job est exécuté a les autorisations appropriées pour les fichiers et répertoires associés.
-
Chemin d'accès complet. Lorsque vous spécifiez un chemin d'accès à un fichier ou à une commande dans votre cron job, utilisez des chemins d'accès complets plutôt que des chemins d'accès relatifs pour éviter toute confusion sur les emplacements de fichiers.
Maintenant que vous avez une compréhension de base de ce qu'est un cron job, comment fonctionne sa syntaxe et comment gérer les autorisations, vous pouvez commencer à automatiser des tâches sur votre système en créant des cron jobs. Les cron jobs sont un moyen puissant d'automatiser des processus répétitifs et de maintenir votre système en bon état de fonctionnement.
N'oubliez pas que la création de cron jobs doit être effectuée avec soin et que vous devriez toujours tester vos tâches avant de les déployer dans un environnement de production.
Remarque : cet article est destiné aux débutants et vise à fournir une compréhension de base des cron jobs. Pour des tâches plus avancées et complexes, des recherches supplémentaires peuvent être nécessaires.

