https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/executer-un-programme-a-une-heure-differee
https://fr.wikipedia.org/wiki/Cron#crontab
http://hardware-libre.fr/2014/03/8-exemples-pour-maitriser-linux-cron
crontab est en fait une commande qui permet de lire et de modifier un fichier appelé la « crontab ».
Ce fichier contient la liste des programmes que vous souhaitez exécuter régulièrement, et à quelle heure vous souhaitez qu'ils soient exécutés.
crontab permet donc de changer la liste des programmes régulièrement exécutés. C'est toutefois le programme cron qui se charge d'exécuter ces programmes aux heures demandées. Ne confondez donc pas crontab et cron : le premier permet de modifier la liste des programmes à exécuter, le second les exécute.
Il y a trois paramètres différents à connaître, pas plus :
$ crontab -l no crontab for mateo21
Normalement, vous n'avez pas encore créé de crontab. Vous noterez qu'il y a une crontab par utilisateur. Là j'édite la crontab de mateo21 car je suis loggé avec l'utilisateur mateo21, mais root a aussi sa propre crontab. La preuve :
$ sudo crontab -l no crontab for root
# crontab -e SHELL=/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # #minute hour mday month wday command # # rotate log files every hour, if necessary 0 * * * * /usr/bin/newsyslog # send log file notifications, if necessary #1-59 * * * * /usr/bin/newsyslog -m # # do daily/weekly/monthly maintenance 30 1 * * * /bin/sh /etc/daily 30 3 * * 6 /bin/sh /etc/weekly 30 5 1 * * /bin/sh /etc/monthly #0 * * * * sleep $((RANDOM \% 1800)) && /usr/libexec/spamd-setup
Le fichier ne contient qu'une seule ligne :
# m h dom mon dow command
Comme cette ligne est précédée d'un #, il s'agit d'un commentaire (qui sera donc ignoré).
Cette ligne vous donne quelques indications sur la syntaxe du fichier :
Chaque ligne du fichier correspond à une commande que l'on veut voir exécutée régulièrement. Vous trouverez en figure suivante un schéma qui résume la syntaxe d'une ligne.
Pour chaque champ, on a le droit à différentes notations :
| Crontab | Signification |
|---|---|
| 47 * * * * commande | Toutes les heures à 47 minutes exactement. Donc à 00 h 47, 01 h 47, 02 h 47, etc. |
| 0 0 * * 1 commande | Tous les lundis à minuit (dans la nuit de dimanche à lundi). |
| 0 4 1 * * commande | Tous les premiers du mois à 4 h du matin. |
| 0 4 * 12 * commande | Tous les jours du mois de décembre à 4 h du matin. |
| 0 * 4 12 * commande | Toutes les heures les 4 décembre. |
| * * * * * commande | Toutes les minutes ! |
| 30 5 1-15 * * commande | À 5 h 30 du matin du 1er au 15 de chaque mois. |
| 0 0 * * 1,3,4 commande | À minuit le lundi, le mercredi et le jeudi. |
| 0 */2 * * * commande | Toutes les 2 heures (00 h 00, 02 h 00, 04 h 00…) |
| */10 * * * 1-5 commande | Toutes les 10 minutes du lundi au vendredi. |