le cron pour les nuls
Par eMerzh, vendredi 12 janvier 2007 à 12:20 ::Linux::#86::rss
Cron est un petit utilitaire fourni avec toutes les distributions linux qui permet d'exécuter des tâches à des moments donnés. Il permet par exemple de lancer un script de backup tous les dimanches soir à minuit ou de mettre a jour les statistiques de vos sites web toutes les 10 minutes, etc.
Pour l'utiliser, vous devez éditer les tâches "cron" à exécuter avec la commande :
crontab -e
vous voyez donc apparaître une ligne :
# m h dom mon dow command
Chaque ligne ajoutée en dessous représentera une nouvelle tâche à exécuter (sauf si elle est commentée avec "#"). La 1ere colonne se rapporte aux minutes (0->59), la 2ieme colonne se rapporte aux heures (0->23), la 3ieme colonne se rapporte aux jours du mois ( 1->31), la 4ieme colonne se rapporte aux mois ( 1->12 ou les noms en anglais), la 5ieme colonne se rapporte aux jours de la semaine ( 0->7 ou les noms en anglais), la 6ieme colonne se rapporte à la commande à lancer.
Vous pouvez également utiliser l'astérisque pour définir votre tous les intervalles ou encore une liste de valeur avec "," ( 1,2,5,8 par exemple). Il est aussi possible d'utiliser une plage de valeurs avec le "-" ( 1-10 donne "de 1 à 10") ou de spécifier le pas ( */5 donnera "toute les 5 minutes" par exemple).
(voir man 5 crontab).
Un petit exemple?
*/5 12 * * * /ma/commande
lancera ma commande toutes les 5 minutes pendant l'heure de midi
0 0 * * mon,tue,wed,thu,fri /mon/script/de/backup
exécutera mon backup tous les soirs de la semaine à minuit.
Il existe également une autre syntaxe permettant de faire certaines choses supplémentaires. Elle commence toutes par un "@".
- @reboot Lance la commande au démarrage de la machine
- @yearly Lance la commande une fois par an (correspond à "0 0 1 1 *")
- @annually pareil que @yearly
- @monthly Lance la commande une fois par mois (correspond à "0 0 1 * *")
- @weekly Lance la commande une fois par semaine (correspond à "0 0 * * 0")
- @daily Lance la commande une fois par jour (correspond à "0 0 * * *")
- @midnight pareil que @daily
- @hourly Lance la commande une fois par heure (correspond à "0 * * * *")
Nous voyons ici qu'avec cette syntaxe, un utilisateur à la possibilité de lancer un script à chaque démarrage sans avoir les droits root ou sans devoir toucher aux scripts d'init.
Commentaires
1. Le vendredi 12 janvier 2007 à 13:55, par bobuse
2. Le vendredi 12 janvier 2007 à 15:24, par Ago
3. Le vendredi 12 janvier 2007 à 15:39, par eMerzh
4. Le vendredi 12 janvier 2007 à 16:50, par Bart
5. Le vendredi 12 janvier 2007 à 16:54, par DecIRC
6. Le samedi 13 janvier 2007 à 12:04, par Tartopom
7. Le samedi 13 janvier 2007 à 15:28, par dantonku
8. Le lundi 15 janvier 2007 à 02:19, par animimotus
9. Le lundi 15 janvier 2007 à 09:50, par eMerzh