Le démon crond est le processus qui permet d'exécuter des tâches planifiées automatiquement à des
instants précis prévus à l'avance (date, heure, minute). En général, cron est installé par défaut sur les systèmes, sinon pour l'installer utiliser le programme d'installation de votre distro (aptitude ou yum).
La configuration des entrées de la cron se fait avec le programme crontab (tables de cron). C'est
très facile à comprendre et à utiliser, mais il y'a une syntaxe à respecter.
1 - manipuler crontab :
lister les taches programmées (crons)
root(a)...:~# crontab -l
Creer / Editer / Supprimer les taches programmées (crons)
root(a)...:~# crontab -e
pour tout autre manipulation
root(a)...:~# man crontab
2 - Syntaxe de cron
root(a)...:~# crontab -l
# m h dom mon dow command
chaque ligne se compose de la facon suivante :
m : (minute) codé sur 2 chiffres (de 0 à 59)
h : (hour) codé sur 2 chiffres (de 0 à 23)
dom : (day of month) codé sur 2 chiffres (de 1 à 31)
mon : (month) codé sur 2 chiffres (de 1 à 12)
dow : (day of week) codé sur 1 chiffre (de 0 à 6)
command : tâche a executer
# execute /path/to/cmd tous les jours a minuit
0 0 * * * /path/to/cmd
3 - Quelques astuces...
* : signifie tout (ou chaque unité de temps)
, : permet de définir une liste.
- : permet de préciser un intervalle
/ : sert à définir des intervalles avec des pas différents de 1
@reboot : permet de lancer la commande au démarrage de la machine
@yearly : tous les ans
@daily : tous les jours
* * * * * /path/to/cmd # execute /path/to/cmd tous les minutes
0 0 * * 5,6 /path/to/cmd # execute /path/to/cmd a minuit tous les samedis et dimanches (tous les weekends a minuit).
0 0-12 * * * /path/to/cmd # execute /path/to/cmd toutes les heures entre minuit et midi, tous les jours de la semaine.
*/10 * * * 1 /path/to/cmd # execute /path/to/cmd toutes les 10 minutes, tous les lundis.
@yearly /path/to/cmd # equivaut a ...
0 0 1 1 * /path/to/cmd (tous les 01/01 a minuit)
@daily /path/to/cmd # equivaut a ...
0 0 * * * /path/to/cmd (tous les jours a minuit)
Question :
Comment executer une tâche toutes les 90 minutes ?