Bon, pour tous ceux qui veulent utiliser cron, voici comment il fonctionne (c’est souvent le plus difficile à comprendre).
Toutes les minutes, le système vérifie s’il faut qu’il lance un programme. Comment fait-il sa vérification ?
C’est simple : il prend date + heure du moment et la décompose.
Prenons aujourd’hui et maintenant :
Samedi 27 février 2010, 1h44 du matin
Cela va être décomposé ainsi :
Minutes / Heures / Jour / Mois / Jour de la semaine
44 / 01 / 27 / 02 / 6
Et le système va lister toutes les tâches, et si les chiffres sont identiques, alors il l’exécute.
Exemple :
* * * * * root ping -c 1 google.fr > /dev/null
Le «*» signifie : «quelque que soit le chiffre, c’est valide».
Comparaison :
Minutes / Heures / Jour / Mois / Jour de la semaine
44 / 01 / 27 / 02 / 6
* / * / * / * / *
Tout correspond => exécution de la tâche !
Maintenant, des exemples qui vont vous servir :
# m h dom mon dow user command
17 * * * * root [commande]
Lancer la commande toutes les fois où «minutes = 17» => lancer «[commande]» toutes les heures (00:17, 01:17, 02:17, 03:17 etc.).
# m h dom mon dow user command
25 6 * * * root [commande]
Lancer la commande toutes les fois où «minutes = 17» et «heure = 6» => lancer «[commande]» tous les jours à 6:17.
# m h dom mon dow user command
47 6 * * 7 root [commande]
Lancer la commande toutes les fois où «minutes = 47, heure = 6» et «jour de la semaine = 7» => lancer «[commande]» tous les dimanches à 6:47.
# m h dom mon dow user command
52 6 1 * * root [commande]
Lancer la commande toutes les fois où «minutes = 52, heure = 6» et «jour du mois = 1» => lancer «[commande]» tous premiers du mois à 6:52.
Un peu plus complexe mais plus pratique : on peut préciser des intervalles : «2-6» veut dire «de 2 à 6 inclus». Exemple :
# m h dom mon dow user command
* 1-6 * * * root [commande]
Lancer la commande toutes les fois où «heure est comprise entre 1 et 6» => lancer «[commande]» toutes les minutes, de une heure à six heures du matin (c’est un exemple concret puisque «[commande], c’est une commande d’une araignée Internet (spider) qui va vérifier des choses pendant que tout le monde dort).
Un peu plus complexe mais encore plus pratique : on peut préciser des intervalles : «*/4» veut dire «tous les multiples de 4». Exemple :
# m h dom mon dow user command
*/4 1-6 * * * root [commande]
Lancer la commande toutes les fois où «heure est comprise entre 1 et 6» et «la minute est un multiple de 4» => lancer «[commande]» toutes les quatre minutes, de une heure à six heures du matin (c’est un exemple concret puisque «[commande]», c’est une commande d’une araignée Internet (spider) qui va vérifier des choses pendant que tout le monde dort).
PS : oui oui il est bien 1:44 du matin et je n’arrive pas à dormir…