La commande Linux crontab est utilisée pour planifier les tâches cron. Une tâche cron est un outil d'automatisation pratique qui permet aux utilisateurs de Linux d'exécuter des tâches automatisées à des périodes ou à des intervalles spécifiques.
Il s'agit d'un moyen convivial de planifier des tâches qui seraient autrement fastidieuses si elles étaient gérées manuellement. Les tâches cron sont généralement utilisées par les administrateurs système pour automatiser des tâches telles que les sauvegardes de serveur, les redémarrages, l'envoi de notifications et les nettoyages, pour n'en citer que quelques-unes.
Une tâche cron s'exécute silencieusement en arrière-plan, vérifiant le /etc/crontab
fichier et /var/spool/cron
et /etc/cron.*/
répertoires. Dans cet article, vous apprendrez à créer et à gérer des tâches cron dans votre système Linux.
Structure des tâches Linux Cron
L'anatomie d'une tâche cron est illustrée ci-dessous.
* * * * * COMMAND arg1 arg2
OU
* * * * * /path/to/script arg1 arg2
De gauche,
The 1st entry represents Minutes [0 - 59]
The 2nd entry represents Hours [0 - 24]
The 3rd entry represents Days [0 - 31]
The 4th entry represents Months [0 - 12]
The 5th entry represents Days of the week [0 - 7]
Exemple crontab Linux
Maintenant que vous avez le squelette d'une crontab, en écrire une est assez facile à condition de connaître la commande ou le chemin d'accès à votre script.
Dans cet exemple, nous allons créer une crontab pour redémarrer un système Linux.
vim reboot.sh
Copiez et collez le contenu ci-dessous dans le fichier bash.
#!/bin/bash
0 3 * * * /sbin/reboot
En suivant la syntaxe crontab comme indiqué précédemment, la tâche cron s'exécutera quotidiennement à 3h00 et redémarrera le système.
Enregistrez et quittez l'éditeur de texte.
Ensuite, attribuez les autorisations d'exécution comme indiqué.
# chmod +x reboot.sh
Pour vérifier les autorisations de fichiers, exécutez :
# ls -l reboot.sh
Pour initialiser l'exécution de la crontab
# crontab reboot.sh
Si vous souhaitez afficher le contenu d'un crontab d'un utilisateur actuellement connecté, exécutez la commande.
crontab -l
Avec le crontab opérationnel, le crontab sera exécuté à l'heure stipulée, c'est-à-dire 3h00 heure locale.
Pour supprimer toutes les tâches cron du système, utilisez le -r
option.
crontab -r
Exemples supplémentaires d'exécution de tâches cron à certains intervalles de temps
- Pour exécuter une tâche cron toutes les minutes , exécutez
* * * * * COMMAND
Si l'heure actuelle est 6h00, la tâche cron s'exécutera à 6h01, 6h02 et ainsi de suite.
- Pour exécuter une tâche cron toutes les n minutes , par exemple toutes les 10 minutes, exécutez
*/10 * * * * COMMAND
- Pour exécuter une tâche cron toutes les énièmes minutes de chaque heure , par exemple toutes les 30 minutes de chaque heure, exécutez
30 * * * * COMMAND
- Pour exécuter une tâche cron toutes les heures , c'est-à-dire toutes les 0 minutes, exécutez
0 * * * * COMMAND
- Pour exécuter une tâche cron toutes les n heures , par exemple, toutes les 6 heures, exécutez
0 */6 * * * COMMAND
- Pour exécuter une tâche cron à un jour précis , disons vendredi, exécutez
0 0 * * FRI COMMAND
- Si vous souhaitez exécuter une tâche cron du lundi au vendredi exécuter
0 0 * * 1-5 COMMAND
Cela exécute la commande à 00h00 tous les jours du lundi au vendredi.
- Pour exécuter une tâche cron tous les jours , exécutez
0 0 * * * COMMAND
- Pour exécuter une tâche cron chaque premier jour de chaque mois
0 0 1 * * COMMAND
- Pour exécuter une tâche cron chaque premier jour du mois à une heure précise , disons 20h30, exécutez
30 20 1 * * COMMAND
- Pour exécuter une tâche tous les trimestres de l'année, c'est-à-dire le 1er jour après tous les 3 mois, exécutez
0 0 1 */3 * COMMAND
- Pour exécuter une tâche cron chaque année , exécutez
0 0 1 1 * COMMAND
Cette tâche cron sera exécutée tous les vendredis à minuit exactement.
Planification des tâches cron à l'aide de Crontab Guru
Les syntaxes de Crontab peuvent être assez déroutantes et difficiles à maîtriser. Mais ne vous inquiétez pas. Crontab Guru est un outil en ligne très convivial qui vous aide à définir de manière transparente vos intervalles de temps sans trop de tracas. Il s'agit d'une interface Web dont les intervalles de temps de crontab sont bien étiquetés et il vous suffit de saisir les chiffres dans le champ de texte pendant que l'outil interprète le crontab. Dans l'exemple ci-dessous, l'outil a généré la crontab pour automatiser une tâche cron toutes les 6h00 du lundi au samedi.