Le crontab est une liste de commandes que vous souhaitez exécuter régulièrement, ainsi que le nom de la commande utilisée pour gérer cette liste. Crontab signifie cron table, car il utilise le planificateur de tâches cron pour exécuter des tâches ; cron lui-même porte le nom de chronos, le mot grec signifiant temps. cron est le processus système qui effectuera automatiquement des tâches pour vous selon un calendrier défini. Le planning s'appelle crontab, qui est également le nom du programme utilisé pour modifier ce planning.
Syntaxe Linux Crontab
Le format Linux Crontab est représenté par la syntaxe suivante :
MIN HOUR DOM MON DOW CMD>
Décomposons chaque champ :
| Champ | Description | Valeur autorisée |
|---|---|---|
| MIN (Minutes) | Spécifie la minute à laquelle la commande sera exécutée | Il va de 0 à 59. |
| HEURE | Indique l'heure de la journée à laquelle l'exécution de la commande est planifiée. | Il s'étend de 0 à 23. |
| DOM (Jour du mois) | Spécifie le jour du mois pour la tâche. | Il va de 1 à 31. |
| LUN (Mois) | Indique le mois au cours duquel la commande sera exécutée. | Cela varie de 1 à 12. |
| DOW (jour de la semaine) | Spécifie le jour de la semaine pour la tâche. | Il est représenté par des nombres de 0 à 6, où 0 et 6 correspondent au dimanche. |
| CMD (commande) | Représente la commande ou le script réel qui s'exécutera à l'heure planifiée. | —————– |
Exemples de tâches Cron
1. Planification d'un travail pour une heure précise
L'utilisation de base de cron consiste à exécuter une tâche à un moment précis, comme indiqué ci-dessous. Cela exécutera le script shell de sauvegarde complète (sauvegarde complète) le 10 juin à 08h30. Le champ horaire utilise le format 24 heures. Ainsi, pour 8 heures du matin, utilisez 8 et pour 20 heures, utilisez 20.
30 08 10 06 * /home/maverick/full-backup>
30 – 30e minute 08 – 08 heures du matin 10 – 10e jour 06 – 6e mois (juin) * – Tous les jours de la semaine
2. Pour afficher les entrées Crontab
- Afficher les entrées Crontab de l'utilisateur actuellement connecté : Pour afficher vos entrées crontab, tapez crontab -l depuis votre compte Unix.

- Afficher les entrées Root Crontab : Connectez-vous en tant qu'utilisateur root (su – root) et effectuez crontab -l.

- Pour afficher les entrées crontab d'autres utilisateurs Linux : Connectez-vous à root et utilisez -u {username} -l.

3. Pour modifier les entrées Crontab Modifiez les entrées Crontab de l’utilisateur actuellement connecté.
Pour modifier une entrée crontab, utilisez crontab -e. Par défaut, cela modifiera la crontab des utilisateurs actuellement connectés. 
4. Pour planifier une tâche pour chaque minute à l'aide de Cron.
Idéalement, vous n’êtes peut-être pas obligé de planifier un travail toutes les minutes. Mais comprendre cet exemple vous aidera à comprendre les autres exemples.
* * * * * CMD>
Le * signifie toutes les unités possibles, c'est-à-dire chaque minute de chaque heure tout au long de l'année. Plus que d'utiliser ce * directement, vous le trouverez très utile dans les cas suivants. Lorsque vous spécifiez */5 dans le champ des minutes, cela signifie toutes les 5 minutes. Lorsque vous spécifiez 0-10/2 dans le champ des minutes, cela signifie toutes les 2 minutes au cours des 10 premières minutes. Ainsi, la convention ci-dessus peut être utilisée pour les 4 autres champs.
5. Pour planifier un travail plusieurs fois (par exemple deux fois par jour)
Le script suivant effectue une sauvegarde incrémentielle deux fois par jour, chaque jour. Cet exemple exécute le script shell de sauvegarde incrémentielle spécifié (sauvegarde incrémentielle) tous les jours à 11h00 et 16h00. La valeur séparée par des virgules dans un champ spécifie que la commande doit être exécutée dans tout le temps mentionné.
00 11, 16 * * * /home/maverick/bin/incremental-backup>
00 – 0ème minute (haut de l'heure) 11, 16 – 11h et 16h * – Tous les jours * – Chaque mois * – Chaque jour de la semaine
6. Pour planifier un travail pour une certaine plage horaire (par exemple uniquement en semaine)
Si vous souhaitez qu'une tâche soit planifiée toutes les heures dans une plage de temps spécifique, utilisez ce qui suit.
- Cron Job tous les jours pendant les heures de travail : Cet exemple vérifie l'état de la base de données tous les jours (y compris le week-end) pendant les heures de travail de 9h à 18h.
00 09-18 * * * /home/maverick/bin/check-db-status>
- 00 – 0ème Minute (Haut de l'heure) 09-18 – 9h, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h * – Tous les jours * – Tous les mois * – Chaque jour de la semaine
- Cron Job tous les jours de la semaine pendant les heures de travail : Cet exemple vérifie l'état de la base de données tous les jours de la semaine (c'est-à-dire hors samedi et dimanche) pendant les heures de travail de 9h à 18h.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
- 00 – 0ème Minute (Haut de l'heure) 09-18 – 9h, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h * – Tous les jours * – Tous les mois 1-5 -Lun, mardi, mercredi, jeu et vendredi (tous les jours de la semaine)
7. Pour planifier une tâche Cron en arrière-plan toutes les 10 minutes.
Utilisez ce qui suit si vous souhaitez vérifier l’espace disque toutes les 10 minutes.
commentaire PowerShell multiligne
*/10 * * * * /home/maverick/check-disk-space>
Il exécute la commande spécifiée check-disk-space toutes les 10 minutes tout au long de l'année. Mais vous pouvez avoir besoin d’exécuter la commande uniquement pendant certaines heures ou vice versa. Les exemples ci-dessus montrent comment procéder. Au lieu de spécifier des valeurs dans les 5 champs, nous pouvons les spécifier à l'aide d'un seul mot-clé comme mentionné ci-dessous. Il existe des cas particuliers dans lesquels, au lieu des 5 champs ci-dessus, vous pouvez utiliser @ suivi d'un mot-clé, tel que redémarrage, minuit, annuel, horaire. Mots-clés spéciaux Cron et leur signification
Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>
8. Pour planifier une tâche pour la première minute de chaque année en utilisant @yearly
Si vous souhaitez qu'une tâche soit exécutée la première minute de chaque année, vous pouvez utiliser le mot-clé @yearly cron comme indiqué ci-dessous. Cela exécutera la maintenance annuelle du système à l'aide du script shell de maintenance annuelle à 00h00 le 1er janvier pour chaque année.
@yearly /home/maverick/bin/annual-maintenance>
9. Pour planifier une tâche Cron au début de chaque mois en utilisant @monthly
C'est aussi similaire au @yearly que ci-dessus. Mais exécute la commande mensuellement une fois en utilisant le mot-clé @monthly cron. Cela exécutera la sauvegarde sur bande du script shell à 00h00 le 1er de chaque mois.
@monthly /home/maverick/bin/tape-backup>
10. Pour planifier un travail en arrière-plan chaque jour à l'aide de @daily
En utilisant le mot-clé @daily cron, cela effectuera un nettoyage quotidien des fichiers journaux à l'aide du script shell cleanup-logs à 00h00 tous les jours.
@daily /home/maverick/bin/cleanup-logs 'day started'>
11. Pour exécuter une commande Linux après chaque redémarrage en utilisant @reboot
En utilisant le mot-clé @reboot cron, cela exécutera la commande spécifiée une fois après le démarrage de la machine à chaque fois.
@reboot CMD>


