⚙️ Les taches planifiées crontab sous Linux

Dernière mise à jour : 30 Jun 2024

Les tâches planifiées sous Linux sont des scripts qui s’exécutent selon une planification spécifique.
Les tâches planifiées sont généralement utilisées pour automatiser des tâches répétitives telles que la sauvegarde des fichiers, l’envoi de notifications et bien plus encore.

Crontab est un outil intégré dans Linux qui permet aux utilisateurs d’exécuter des commandes ou des scripts à des moments prédéfinis

Il peut être utilisé pour planifier des tâches à exécuter régulièrement, telles que l’exécution de scripts de sauvegarde ou le nettoyage des fichiers temporaires.

Le crontab est un utilitaire qui offre une interface facile à utiliser pour planifier des tâches sur un ordinateur Linux.
Il se compose d’une série de lignes qui spécifient quand et comment les tâches doivent être exécutées.
Chaque ligne contient une heure, un jour et un mois pour l’exécution de la tâche, ainsi que le script à exécuter et ses arguments.

Pour créer une tâche planifiée, vous devez d’abord créer un fichier crontab.
Ce fichier contient une liste des tâches planifiées et des informations sur leur exécution.

Chaque ligne du fichier représente une tâche planifiée et contient les informations suivantes :

  • La commande à exécuter.
  • La fréquence à laquelle la commande sera exécutée.
  • L’heure et la date à laquelle la commande sera exécutée.

Une fois configurées, les tâches planifiées s’exécutent automatiquement à l’heure spécifiée sans nécessiter une quelqueonque intervention humaine.


Comment définir des taches planifiées avec crontab sous Linux ?

Pour définir des tâches planifiées avec crontab sous Linux, vous pouvez suivre les étapes suivantes :

Ouvrez un terminal et tapez la commande crontab -e pour ouvrir l’éditeur de crontab. Cette commande ouvrira le fichier de configuration de crontab pour votre utilisateur courant.

Ajoutez une ligne pour chaque tâche planifiée que vous souhaitez définir, en suivant le format suivant :

minute heure jour mois jour_de_la_semaine commande

Par exemple, pour exécuter une tâche tous les jours à minuit, vous pouvez ajouter la ligne suivante :

0 0 * * * commande

Vous pouvez utiliser des caractères génériques tels que * pour spécifier que la tâche doit être exécutée pour tous les minutes, heures, jours, mois ou jours de la semaine. Vous pouvez également utiliser des plages ou des intervalles pour plus de flexibilité, par exemple :

0 0-23/2 * * * commande   # exécute la commande toutes les 2 heures
                        

Enregistrez le fichier de configuration de crontab en utilisant les raccourcis clavier de votre éditeur, par exemple Ctrl+S dans l’éditeur vi.

Quittez l’éditeur en utilisant les raccourcis clavier, par exemple :wq dans l’éditeur vi.

Ces étapes devraient vous permettre de définir des tâches planifiées avec crontab et de les exécuter selon les intervalles spécifiés. Consultez la documentation de crontab pour plus d’informations sur les options et les formats disponibles.


Voici un fichier crontab vide :

# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

Vous pouvez ajouter vos propres commandes à la fin de ce fichier d’exemple en respectant le format présenté ci-dessus.

Chaque ligne commencant par un # est une ligne de commentaire libre et n’est pas interpretée par crontab.