Académique Documents
Professionnel Documents
Culture Documents
GESTION DES
TACHES
ESAT
Systèmes Répartis UNIX Gestion des tâches
UNIX dispose de quelques commandes qui permettent de lancer des commandes ou des
programmes en différé : at, batch, crontab. Chacune de ces commandes correspond à un
emploi particulier mais elles utilisent toutes les services d'un démon particulier : l'utilitaire
cron.
crond est un démon qui lance des commandes et des programmes à des dates et des
heures spécifiées.
Fonctionnement de cron
Les requêtes transmises par les utilisateurs, via les commandes at, batch et crontab,
sont mémorisées dans des files d'attente situées dans le répertoire / var / spool / cron
en attendant d'être traitées.
• Lorsqu'il est lancé, cron parcourt les files d'attente pour déterminer la
prochaine requête à exécuter et se met en sommeil en attendant l'heure
d'exécution.
• A son réveil, il crée un processus qui exécute la commande arrivée à
échéance puis recherche la prochaine requête avant de se remettre en
sommeil.
Lorsque plusieurs commandes sont à lancer en même temps, cron crée autant de
processus qu'il est nécessaire.
cron est aussi réveillé à chaque exécution d'une commande de service et il relit alors
les files d'attente pour prendre connaissance des modifications apportées
cron gère trois files d'attente: une pour chaque commande de soumission.
Le service cron peut être utilisé par tout utilisateur autorisé. Néanmoins il est
évident que c'est l'administrateur qui l'utilisera le plus fréquemment pour
automatiser une grande partie de ses tâches de contrôle ( purge de répertoires,
service uucp, accounting, etc....).
Les services cron des versions BSD ont des possibilités plus restreintes.
jj/10/OO ESAT 2
Systèmes Répartis UNIX Gestion des tâches
jj/10/OO ESAT 3
Systèmes Répartis UNIX Gestion des tâches
2. La commande crontab
2.1. Utilisation
Cette commande est utilisée pour créer un fichier de soumission dans lequel
sont indiquées, pour l'utilisateur qui invoque la commande, les commandes à
exécuter par cron.
Ces commandes sont alors stockées dans un fichier du répertoire / var / spool /
cron / nom_utilisateur.
Sur certain Unix l'option –e n'existe pas il faut pour créer un fichier cron
réaliser les commandes suivantes :
jj/10/OO ESAT 4
Systèmes Répartis UNIX Gestion des tâches
minutes : 0 à 59
heure : 0 à 23
jour_du_mois : 1 à 31
mois : 1 à 12
jour_semaine : 0 à 6 ( 0 = dimanche )
chemin : chemin de la commande à exécuter avec paramètres
éventuels.
jj/10/OO ESAT 5
Systèmes Répartis UNIX Gestion des tâches
3. Les commandes at
Pour autoriser l'accès aux services on dispose, dans le répertoire /etc de fichiers
at.allow et at.deny qui contiennent la listes des personnes autorisées ou non à se servir
de at.
Ces fichiers sont simplement composés de noms d'utilisateurs, à raison de un par
lignes.
Le fichier d'autorisation est consulté en premier, et donc quelqu'un apparaissant dans
les deux fichiers se voit autorisés l'accès aux services.
Si le fichier / etc / at.allow existe, seuls les utilisateurs dont les noms sont
mentionnés dans ce fichier peuvent utiliser at.
Si / etc / at.allow n'existe pas, at vérifie si / etc / at.deny existe, et tous les
utilisateurs non mentionnés dans ce fichier ont le droit d'invoquer at.
Le fichier / etc / at.deny vide signifie que tous les utilisateurs ont le droit
d'appeler ces commandes, c'est la configuration par défaut.
jj/10/OO ESAT 6
Systèmes Répartis UNIX Gestion des tâches
#! /bin/sh
prefix=/usr
exec_prefix=${prefix}
exec ${exec_prefix}/bin/at -qb now "$@"
C'est à dire que le travail est exécuté immédiatement , si les critères définis le
permettent, en utilisant la file b.
La commande batch obéit aux même règles concernant les fichiers at.allow et
at.deny que la commande at.
jj/10/OO ESAT 7