Comprendre et utiliser Cron : un guide complet pour planifier des tâches

Croncourt pour commande exécutée en ligne, est un puissant planificateur de tâches basé sur le temps dans les systèmes d’exploitation de type Unix. Le terme cron est un jeu de mots Couronne ou chronos, qui dans la mythologie grecque représente le temps. Le nom cron pour le planificateur de tâches basé sur le temps reflète sa fonction de planification et d’exécution de tâches à des heures ou à des intervalles spécifiques, ce qui en fait une référence appropriée au concept de temps dans la mythologie.
Cron vous permet d’automatiser les tâches répétitives, d’exécuter des scripts à intervalles spécifiques et de maintenir l’efficacité du système. Ce guide complet vous guidera à travers tout ce que vous devez savoir sur cron, de l’installation à l’utilisation, en passant par le vocabulaire clé et de vrais exemples de code.
Table des matières
- Qu’est-ce que cron ?
- Installer Cron
- Concepts de base et terminologie
- Syntaxe Cron
- Exemples et cas d’utilisation
- Pièges courants et meilleures pratiques
- Ressources cron supplémentaires
Qu’est-ce que Cron ?
Cron est un démon (processus en arrière-plan) qui s’exécute sur les systèmes Unix, notamment Linux et macOS. Son objectif principal est d’exécuter automatiquement les tâches planifiées. Ces tâches peuvent aller de simples scripts à la maintenance et aux sauvegardes du système.
Installer Cron
Dans la plupart des systèmes de type Unix, cron est préinstallé. Vous pouvez vérifier sa disponibilité en ouvrant un terminal et en tapant :
crontab -e
Si cette commande ouvre l’éditeur de table cron, cron est installé. Sinon, vous pouvez l’installer à l’aide du gestionnaire de packages de votre système. Par exemple, sur Ubuntu, vous pouvez utiliser :
sudo apt-get install cron
Concepts et terminologie Cron
Avant de plonger dans l’utilisation de cron, comprenons quelques concepts et terminologies essentiels :

- Crontab: Court pour table cronc’est un fichier qui contient la liste des tâches planifiées pour un utilisateur.
- Tâche planifiée: Une seule tâche ou commande planifiée pour s’exécuter à une heure précise.
- Des champs: Chaque tâche cron comporte cinq champs qui définissent le moment où la tâche est exécutée :
- Minutes (0-59)
- Heure (0-23)
- Jour du mois (1-31)
- Mois (1-12)
- Jour de la semaine (0-7, où 0 et 7 représentent le dimanche)
Syntaxe Cron
Comprendre la syntaxe d’une entrée crontab est crucial. Il suit le modèle :
* * * * * command-to-be-executed
Voici une explication commentée que vous pouvez insérer dans votre tâche cron :
# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
* * * * * /var/www/html/myscript.php
Chaque astérisque
30 15 * * * command-to-be-executed
représente un champ dans l’expression cron. Par exemple, pour planifier une tâche tous les jours à 15h30, vous utiliserez :
Exemples et cas d’utilisation de Cron
- Explorons quelques exemples pratiques pour illustrer l’utilisation de cron : Exécuter un script quotidiennement :
0 0 * * * /path/to/script.sh
- Pour exécuter un script tous les jours à minuit, vous pouvez utiliser : Exécuter un script toutes les heures :
0 * * * * /path/to/script.sh
- Pour une tâche horaire, utilisez : Sauvegarde hebdomadaire :
0 2 * * 0 /path/to/backup-script.sh
- Pour planifier une sauvegarde hebdomadaire le dimanche à 2 heures du matin, utilisez : Exécuter une tâche sur des mois spécifiques :
30 8 * 1,7 * /path/to/script.sh
Pour exécuter une tâche uniquement en janvier et juillet à 8h30 :
- Pièges Cron et meilleures pratiquesVariables d’environnement
- : Assurez-vous que vos tâches cron configurent les variables d’environnement nécessaires, car les tâches cron n’héritent pas des variables d’environnement de votre shell. Autorisations :
- Assurez-vous de définir les autorisations sur votre fichier de script comme exécutable. Chaque fois que je réenregistrais mon script, je constatais que mes autorisations devaient être à nouveau définies !Variables de chemin
- : Spécifiez le chemin complet des exécutables et des scripts dans vos tâches cron pour éviter les problèmes avec les chemins relatifs.Essai
- : Testez-les dans un environnement sûr avant de configurer des tâches cron critiques pour vous assurer qu’elles fonctionnent comme prévu.Enregistrement
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1
: redirigez la sortie de vos tâches cron vers un fichier journal pour suivre leur exécution et toute erreur potentielle. /path/to/script.sh
Cette tâche cron exécute un script /path/to/cron.log
tous les jours à minuit, et la sortie (stdout et stderr) générée par le script est ajoutée au fichier journal
- . Il s’agit d’une pratique courante consistant à capturer et à enregistrer le résultat des tâches cron à des fins de surveillance et de dépannage. Décomposons cette syntaxe spécifique de la tâche cron : *0 0 * * * :
- Cette partie définit le calendrier d’exécution de la tâche cron. Dans ce cas, son exécution est planifiée tous les jours à minuit (0 minute après 0 heure)./chemin/vers/script.sh
/path/to/script.sh
: Il s’agit de la commande ou du script à exécuter lors de l’exécution de la tâche cron. Cet exemple montre un script situé à - .>> /chemin/vers/cron.log
cron.log
: Cette partie redirige la sortie standard (stdout) de la tâche cron vers un fichier journal nommé/path/to/
situé à>>
. Le - L’opérateur ajoute la sortie au fichier journal, donc si le fichier n’existe pas, il sera créé, et s’il existe déjà, la sortie sera ajoutée à la fin du fichier.2>&1
2
: Ceci est utilisé pour rediriger à la fois la sortie standard (stdout) et l’erreur standard (stderr) vers le même fichier journal. Le1
représente stderr, et le2>&1
représente la sortie standard. Donc,
signifie que stdout et stderr sont redirigés vers le même fichier journal spécifié précédemment.
Cron est un outil précieux pour automatiser les tâches sur les systèmes basés sur Unix. Grâce à ses options de planification flexibles, il peut simplifier l’administration du système et améliorer l’efficacité. En comprenant sa syntaxe et en suivant les meilleures pratiques, vous pouvez exploiter la puissance de cron pour automatiser efficacement vos tâches de routine.
Ressources Cron supplémentaires
Source link