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 4933 fois


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

Réactions à cet article


Réaction n°4 

par nike le 10/08/2011 @ 11:57

you will louis vuitton polarized sunglasses find that many an electronics dropshipper will supply similar or exactly the same products. make sure that your payments coogi men t-shirts are done by a secure source such as an online payment vendor or your local financial institutions. do not directly nike air max tn wire your money to an unknown company, without verifying through your bank first, as there are no protections in mlb caps snapback place against a wire transfer in case anything goes awry. therefore avoid this method at all costs if possible. if ato women shoes the wholesaler insists on a wire transfer it may also be a sign to move on to another company nfl kids jerseys indianapolis colts which supplies the same consumer electronics products.


Réaction n°3 

par fashion le 10/08/2011 @ 11:56

a negative sign is when they dolce gabbana shoes men outright refuse to do so, which in this case, you can then consider making use of other companies that are prada glasses frame readily available all over the world.make sure that they have a viable payment systemfor the most part


Réaction n°2 

par Casqu le 04/08/2011 @ 05:39

Casque beats by dr dre Casque beats by dre écouteurs beats by dre Casque beats Casque dr dre beats Casque beats studio Casque écouteurs beats solo Casque écouteurs beats pro Casque Beats By dre Nouveau Style Casque dr dre Beats Casque Beats By dre En France monster Beats édition limitée Casque beats by dre studio Noir/Jaune casque beats by dre studio Noir/Jaune casque beats studio Noir/Jaune Beats Studio Noir/Jaune casque Beats by Dre Studio Lamborghini casque Beats Studio Lamborghini Beats Studio Lamborghini Dr.Dre Studio casque Lamborghini édition Beats by Dre Studio James 23 Beats studio James 23 édition casque Beats by Dre Studio James 23 Dre Studio LeBron James casque beats Studio James édition casque beats studio Diamant Rouge casque beats by dre studio Diamant casque beats studio édition limitée dr dre beats studio Diamant Rouge beats by dre pro casque dr dre beats pro casque beats by dre pro beats pro casque monster beats pro Beats by Dre Pro Detox

Réaction n°1 

par hfdhs le 07/01/2011 @ 09:09

been the victim chanel necklace replicas victim of intimidation from other residents since vivienne necklace since she bought her home in 2003.Lor,

knock off chanel jewelry 2003.Lor, 76, lives in Solera Chandler Active cartier bracelet Active Adult Retirement Community, which has more

replica Cartier Jewelry more than


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.4 seconde