Le fichier crontab stocke les tâches cron sous Linux. Les tâches cron (cron) s’exécutent périodiquement à des heures, des dates et des intervalles fixes. Son équivalent dans Windows est la tâche planifiée. Toutes les tâches répétitives peuvent être planifiées à l’aide de cron.
Le fichier Crontab est le fichier de configuration qui contient des informations sur l’heure et les commandes/scripts à exécuter.
Dans ce tutoriel, nous apprenons crontab Linux avec exemples à planifier des tâches.
Syntaxe Crontab
Chaque ligne du fichier crontab représente un travail. Il contient cinq champs suivi d’un commande shell ou script éxécuter.
Syntaxe:
* (Minute) *(Hour) * (Day of the Month) *(Month of the Year) *(Day of the Week) username <path to command/script to execute
>
* | Minute | La valeur de ce champ est comprise entre 0 et 59 |
* | Heure | La valeur de ce champ est comprise entre 0 et 23 |
* | Jour du mois | La valeur de ce champ est comprise entre 1 et 31 |
* | Mois de l’année | La valeur de ce champ est comprise entre 1 et 12. Les 3 premiers alphabets du mois sont également acceptés comme jan, feb, mar |
* | Jour de la semaine | La valeur de ce champ est comprise entre 0 et 7. Où 0 et 7 correspondent au dimanche. 1 est lundi, 2 est mardi, comme sage |
Champs crontab
Définir plusieurs valeurs ou plages
Pour définir plusieurs valeurs et plages, utilisez la virgule (,) et le trait d’union (-). L’astérisque examplecorrespond à n’importe quoi. Pour
, pour afficher plusieurs valeurs, utilisez 1,2,3 ou mon,tue,wed et pour les plages, utilisez 1-3 ou mon-wed.
Comment utiliser crotab crontab
La commande est utilisée pour ouvrir et éditer/ajouter des tâches cron. Le démon cron qui s’exécute sur Linux exécute les tâches planifiées à l’heure définie dans la crontab (table cron). Le fichier crontab principal à l’échelle du système est /etc/crontab. Cron est par défaut
installé dans la plupart des distributions Linux. Chaque utilisateur du système Linux peut gérer ses propres tâches cron. Chaque cron utilisateur est stocké sous /var/spool/cron/crontabs/. Le démon cron exécute à la fois la crontab utilisateur et système.
Le démon Cron a défini un $PATH par défaut, que vous pouvez trouver dans /etc/crontab. Si ce n’est pas le cas, définissez-le, utilisez le chemin absolu ou ajoutez-le à la variable cron $PATH. MAILTO
La notification par courrier électronique cron est envoyée par défaut au propriétaire de la crontab. Pour changer cela, éditez
variable d’environnement. Journaux Cron sont stockés dans /var/log/syslog sur les systèmes Ubuntu/Debian et dans /var/log/cron
sur Redhat/Rocky Linux. Vous pouvez filtrer le fichier journal à l’aide de la commande grep pour vérifier que la tâche cron s’est exécutée avec succès ou non.
1. Modifier/ajouter Crontab
$ crontab -e
Pour modifier (des travaux existants) ou ajouter un nouveau cron, utilisez la commande crontab -e. Cela ouvrira un éditeur pour l’utilisateur actuel.
$ crotab -u username -e
Pour modifier un autre fichier crontab utilisateur, tapez :
Ou exécutez simplement la commande crontab -e en vous connectant en tant qu’utilisateur.
2. Liste des tâches Cron
$ crontab -l
Pour répertorier tous les travaux de l’utilisateur actuel, tapez :
$ crontab -u -l
Pour répertorier toutes les tâches cron pour un utilisateur spécifié, tapez :
3. Supprimer les tâches cron
# crontab -r
Pour supprimer toutes les tâches cron de l’utilisateur actuel, exécutez la commande suivante :
Remarque : cela supprimera toutes les tâches cron sans demander de confirmation.
# crontab -ir
Si vous souhaitez supprimer de manière interactive, vous devez utiliser la commande suivante :
Exemples de tâches Crontab
Vérifions quelques exemples de crontab pour planifier des tâches cron.
1. Exécutez des tâches cron toutes les 12 heures
0 */12 * * * /scripts/test.sh
Cela aide à effectuer des vérifications ou des sauvegardes régulières du système. Pour planifier une tâche à exécuter toutes les 12 heures, tapez :
2. Exécutez la tâche cron toutes les 5 minutes
*/5 * * * * /scripts/test.sh
Parfois, vous devez surveiller votre système toutes les n minutes. Utilisez l’expression suivante pour exécuter la tâche toutes les 5 minutes.
3. Exécutez la tâche cron tous les jours à 2 heures du matin
0 2 * * * /script/test.sh
La sauvegarde quotidienne peut être planifiée à une heure précise. L’expression suivante exécute la tâche cron à 2 heures du matin tous les jours.
0 14 * * * /script/test.sh
Pour planifier une tâche cron tous les jours à 14 heures, cron utilise une horloge de 24 heures.
30 12 * * * /script/test.sh
4. Exécutez la tâche cron tous les jours à 00h30
5. Exécutez la tâche cron toutes les minutes examplePour
* * * * * /scripts/test.sh
, vous avez un script qui doit être exécuté toutes les minutes, utilisez l’expression suivante.
6. Exécutez la tâche cron à certaines minutes
2,15,30 * * * * /scripts/test.sh
Utilisez l’expression cron suivante pour exécuter le script aux minutes 2, 15 et 30.
7. Exécutez la tâche cron pour qu’elle s’exécute tous les samedis à 1 heure du matin
0 1 * * sat /scripts/test.sh
Cela vous aide à exécuter la sauvegarde le samedi à une heure précise. L’expression suivante permet de cron job tous les samedis à 1h du matin.
8. Exécutez la tâche cron pour qu’elle s’exécute sur des mois spécifiques
0 1 1 jan,apr,jun * /script/test.sh
Pour exécuter des tâches cron à 01h00 le 1er jour du mois en janvier, avril et juin.
9. Exécuter la tâche cron les jours sélectionnés
0 4 * * sat,sun /script/test.sh
Pour exécuter des tâches cron certains jours comme le samedi et le dimanche, utilisez :
10. Exécuter des tâches cron à certaines heures de la journée
0 9-17 * * * /script/test.sh
À la minute 0 après toutes les heures de 9 à 17
11. Exécutez la tâche cron deux fois chaque samedi et dimanche
0 2,23 * * sat,sun /scripts/test.sh
Les tâches cron permettent d’exécuter des tâches à des heures spécifiques et des jours spécifiques
12. Exécutez la tâche cron pour une plage allant du lundi au vendredi
0 2 * * mon-fri /scripts/test.sh
À 02h00 tous les jours de la semaine du lundi au vendredi.
13. Exécuter la tâche cron mensuellement
@monthly /scripts/test.sh
Au lieu d’utiliser 0 0 1 * *, vous pouvez utiliser un raccourci en utilisant @monthly. Il fonctionne à 00h00 le 1er jour du mois. Alternativement, vous pouvez placer votre script sous /etc/cron.monthly/.
14. Exécutez la tâche cron chaque semaine
@weekly /scripts/test.sh
Au lieu d’utiliser 0 0 * * mon, vous pouvez utiliser un raccourci en utilisant @weekly. Il fonctionne à 00h00 le lundi. Alternativement, vous pouvez placer votre script sous /etc/cron.weekly/.
15. Exécuter la tâche cron quotidiennement
@daily /scripts/test.sh
Au lieu d’utiliser 0 0 * * *, vous pouvez utiliser un raccourci en utilisant @daily. Il fonctionne à 00h00 tous les jours. Alternativement, vous pouvez placer votre script sous /etc/cron.daily/.
16. Exécuter la tâche cron toutes les heures
@hourly /scripts/test.sh
Au lieu d’utiliser 0 */1 * * *, vous pouvez utiliser un raccourci en utilisant @hourly. Il fonctionne à 0 minutes toutes les heures. Alternativement, vous pouvez placer votre script sous /etc/cron.hourly/.
17. Exécutez la tâche cron au redémarrage
@reboot /scripts/test.sh
Pour exécuter une tâche à chaque redémarrage du système, utilisez la chaîne @reboot. Le script s’exécutera après le redémarrage.
18. Exécutez la tâche cron toutes les 30 secondes
Cron ne permet de fonctionner que pendant au moins 60 secondes. Il n’existe pas de méthode simple pour planifier une tâche à exécuter toutes les 30 secondes.
Mais nous pouvons utiliser une solution de contournement en augmentant le délai de 30 secondes.
* * * * /scripts/run.sh * * * * veille 30 ; /scripts/run.sh
19. Exécutez une tâche cron et redirigez la sortie
*/3 * * * * /usr/bin/php /script/run.php >> /var/log/run.log
Cela exécutera le script php toutes les 3 minutes et redirigera la sortie vers un fichier.
20. Exécutez une tâche cron pour exécuter plusieurs commandes
0 */12 * * Sun command1 && command2
Pour exécuter cron afin d’exécuter plusieurs commandes, utilisez l’opérateur && entre les commandes.
Tâches cron de sauvegarde
# crontab -l > /backup/cron/root-bckup
Pour sauvegarder cron, utilisez la commande suivante
.SMS
# crontab -u userName -l > /backup/cron/user-bckup.txt
Pour sauvegarder le cron d’un utilisateur spécifique, tapez :
# crontab /backup/cron/root-backup.txt
Pour restaurer cron à partir du fichier de sauvegarde, utilisez simplement :
Conclusion
Dans ce didacticiel, nous avons découvert crontab sous Linux et des exemples pour planifier des tâches cron.
Si vous avez des commentaires et des suggestions, veuillez commenter ci-dessous.