TUXANANTES
Formations
+ Initiation
+ Internet et Messagerie
+ Linux
+ Reseau
+ Windows XP
Articles techniques

Automatiser l'exécution de tâches avec CRON

Crontab


Principe

Commande particulièrement importante pour l'administrateur , elle permet l'exécution automatiquement des commandes à intervalles réguliers, comme par exemple les sauvegardes

Cron (avec l’outil crontab) permet de soumettre des commandes (applications, scripts, ...) que le système doit exécuter à un moment précis, ou à intervalle régulier.



Fonctionnement

  • Le processus crond est normalement lancé au démarrage.
    Comme tous les services ( daemon ) sous Linux, on peut le lancer avec :

/etc/rc.d/init.d/crond start

  • l'arrêter avec :

/etc/rc.d/init.d/crond stop

  • vérifier si il « tourne » avec :
    /etc/rc.d/init.d/crond status
    ou

    [root@fedora1 ~]# ps -ef | grep cron

root 2899 1 0 Mar23 ? 00:00:00 crond

  • Il lit toutes les minutes les fichiers présents dans le répertoire /var/spool/cron (et aussi le fichier /etc/crontab ), pour voir si des tâches doivent être exécutées.

  • Chaque action de crond ajoute une ligne de message dans le fichier /var/log/cron, qu'il faut purger de temps en temps ... par une commande crontab !

  • Par défaut si une commande produit un affichage, il est dirigé vers la messagerie , mais sa vocation est de travailler en batch ( indépendemment de l'ouverture d'une session )



Mise en oeuvre

Pour la compréhension de cet outil , je vais lui faire faire quelque chose qui n'est pas habituel, je vais lui demander d'afficher chaque minute un texte sur mon terminal.

Ce texte sera constitué de la date et de l'heure systeme( ce qui permettra de vérifier qu'il s'exécute bien toutes les minutes ) et un texte quelconque : « Coucou »

1ère étape :

Créer un fichier avec votre editeur préféré.( le nom du fichier n'a pas d'importance , son extension non plus ) qui contiendra la périodicité et la liste de la ou des tâches que crond devra prendre ne charge :

[root@fedora1 ~]# vi moncron

* * * * * ( date;echo "Coucou" ) > /dev/pts/9



Quelques commentaires sur le contenu de ce fichier :

La première étoile : toutes les minutes de chaque heure

2ème : toutes les heures de chaque jour

3ème : tous les jours du mois

4ème : tous les mois de l'année

5ème : tous les jours de la semaine

En d'autre terme : tout le temps , toutes les minutes, je demande à cron d'executer :

( date;echo "Coucou" ) > /dev/pts/9

je redirige explicitement le résultat de l'exécution de la commande « date » et l'affichage du texte « Coucou » vers un terminal désigné par son nom ( ici /dev/pts/9 ) sinon, par défaut, le résultat de cet affichage est envoyé dans la messagerie de l'utilisateur au nom cron exécute cette tâche.



2ème étape

Je demande à cron de prendre en compte le contenu de ce fichier précedemment créé.

C'est la commande « crontab » qui assure cette fonction :

[root@fedora1 ~]# crontab moncron



C'est tout !



Si cette commande est bien prise en charge par cron, aprés la premère minute suivant l'exécution de crontab, on obtient :

[root@fedora1 ~]# Mon Mar 26 17:48:01 CEST 2007

Coucou

Mon Mar 26 17:49:01 CEST 2007

Coucou

Mon Mar 26 17:50:01 CEST 2007

Coucou

Mon Mar 26 17:51:01 CEST 2007

Coucou

Mon Mar 26 17:52:01 CEST 2007

Coucou

Mon Mar 26 17:53:01 CEST 2007

Coucou

Mon Mar 26 17:54:01 CEST 2007

Coucou

Mon Mar 26 17:55:01 CEST 2007

Coucou

Mon Mar 26 17:56:01 CEST 2007

Coucou

...



Description plus avancé du contenu du fichier lu par crontab

        Champs          valeurs autorisées 
--------- --------------
minute 0-59
heure 0-23
jour du mois 0-31
mois 0-12 (ou noms, voir plus bas)
jour de semaine 0-7 (0 et 7 sont dimanche, ou 1=lundi, 2=mardi, ...)
Un champ peut contenir un astérisque (*), qui correspond à l'intervalle du premier au dernier.
Les intervalles de nombres sont permis.
Ils se présentent sous forme de deux nombres séparés par un tiret.
Les bornes sont incluses.
Par exemple, l'intervalle horaire 8-11 correspond à une exécution aux heures 8, 9, 10, et 11.
Les listes sont permises.
Une liste est une série de nombres ou d'intervalles séparés par des virgules.
Exemple ''1,2,5,9'', ''0-4,8-12''.

Quelques exemples complémentaires

# exécution chaque 1er et 15 de chaque mois à minuit

0 0 1,15 * * commande(s) ou script(s)
# provoquer un reboot la machine chaque 1er et 15 du mois à 2h 30 du matin
30 2 1,15 * * /sbin/shutdown -r
# appeler un script de sauvegarde tous les lundis a 3 h 15 du matin
15 3 * * 1 /usr/bin/backup
# exécution à la 15ème minute de chaque heure
15 * * * * commande
# exécution tous les matins du lundi au vendredi à 7 h 30
30 7 * * 1-5 commande
# exécution tous les quarts d'heure de 15h à 19h du lundi au vendredi
# seulement en 1ère quinzaine du troisième trimestre
0,15,30,45 15-19 1-15 7-9 1-5 commande
# trouver puis nettoyer le répertoire /tmp des vieux fichiers (non modifiés
# depuis 31 jours) tous les 1er jour de chaque mois, à 2 heures du matin
0 2 1 * * find /tmp -atime 31 -exec rm -f {} ;

Syntaxe de la commande crontab

crontab [-u user] file

Permet de soumettre à cron le fichier contenant les commandes et leur périodicité de traitement

L'option -u demande à cron de traiter l'exécution des comandes au nom de l'utilisateur « user », en prenant notamment en compte son environement ( variables , alias ,...)


crontab [-u user] [-l | -r | -e][-i] [-s]

-l : liste les taches prisent en charge par cron

-r : supprime le traitment de ces taches par cronz

-e : lance l'editeur définit par les variables d'environnement : VISUAL or EDITOR

-i : interactivité , demande à l'utilisateur confirmation pour la suppression des tâches lorsqu'on utilise l'option -r


La réexécution de crontab avec un nouveau fichier en argument supprime toutes les commandes précédemment prisent en charge au profit de la ou des nouvelles commandes.


Pour soumettre différentes commandes avec des périodicités différentes,

il faut créer dans le même fichier de définition autant de ligne que de commandes à traiter et définir pour chacune la périodicité de traitement.



Date de création : 26/03/2007 @ 18:30
Dernière modification : 14/03/2008 @ 07:43
Catégorie :
Page lue 4868 fois


Prévisualiser la page Prévisualiser la page     Imprimer la page Imprimer la page

Réactions à cet article


Réaction n°9 

par longchampsac le 18/09/2012 @ 15:15

The cool autumn arrives, Sac Longchamp is trying to introduce new products, surely we want a new bag? Various new design Longchamp Petite maroquinerie, Sac Bandouliere Longchamp, Longchamp Sac a main for sale with big discount. Longchamp Sac Pas Cher offer many kinds of Longchamp Pas Cher bags sale with different style, colors and sizes.


Réaction n°8 

par lucy le 11/07/2012 @ 07:34

onitsuka tiger, asics onitsuka tiger, onitsuka tiger shoes

yoga clothes,yoga pants,yoga clothes sale


Réaction n°7 

par guanyuyu le 07/07/2012 @ 02:37

The Christian Louboutin UK with surface area texture carries a gentle really feel on-­e you touch. Designer Christian Louboutin Outlet UK is famous and admirable due to Louboutin UK stylish designs, stylish look and impressive quality. Christian Louboutin Sale UK offer all the Louboutin have been worked by a craftsman and finished by hand.


Réaction n°6 

par guanyuyu le 07/07/2012 @ 02:36

This kind of Sac Longchamp really worth of our love. Simple style but also have brilliance. Sac Hobo Longchamp with simple style reveal fashion, see it at first sight, you will love this Longchamp. If you are willing to carry Sac à Main Longchamp, I believe that you will draw people's eyes without doubt, Longchamp Pas Cher will be your best choice!


Réaction n°5 

par uk le 31/10/2011 @ 03:58

Moncler UK Moncler Sale Moncler Outlet Moncler Jackets cheap moncler jackets Beats By Dre Canada Beats By Dr.Dre Monster Beats By Dre Dr.Dre Headphones New Style Beats By Dr.Dre Beats By Dr.Dre Pro Tour iBeats Heartbeats Diddybeats Powerbeats beats by dre Cuffie Monster Beats Dr Dre Beats Beats By Dr Dre Cuffie Cuffie Dr Dre Nuovo Stile Beats Cuffie Dr Dre Justbeats Cuffie Dr Dre Justbeats Dr Dre Beats Studio Cuffie Dr Dre Studio Dr Dre Beats Pro Cuffie Dr Dre Pro Dr Dre Beats Solo Cuffie beats by dre beats by dre australia beats by dre outlet discount beats by dre Discount Beats By Dr Dre Beats By Dre UK Dr Dre Headphones UK Beats By Dre Online Store New Arrival Beats By Dr.Dre UK Discount Beats By Dr Dre Studio Headphones UK Discount Beats By Dr.Dre Pro Discount Dr Dre Beats Solo Headphones dre solo HD Headphones dre beats Justbeats Headphones Beats By Dr.Dre In-Ear headphones Discount Beats by Dre


DébutPrécédent [ 1 2 3 ] SuivantFin
Calendrier

Recherche




Spécial !
www.portail44.org

L'ouvre-Boites 44.jpg
^ Haut ^


Promouvoir et soutenir le logiciel libre


GuppY - http://www.freeguppy.org/    Site créé avec GuppY v4.5.16 © 2004-2005 - Licence Libre CeCILL   GuppY - http://www.freeguppy.org/

Document généré en 0.66 seconde