Vous êtes sur la page 1sur 7

Systèmes Répartis UNIX

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.

1. Le gestionnaire de tâches différées 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 est normalement lancé par un script / etc / rc.d / rc2.d.

 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....).

Comme le fichier de soumission de l'administrateur peut devenir important, il faut


l'écrire de manière à ce qu'il reste lisible. Une bonne solution consiste à indiquer les
différents travaux à réaliser par heure de déclenchement: ce procédé permet d'éviter
de déclencher deux tâches réclamant beaucoup de temps processeur en même temps.

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

 Constitution du service cron :

Le service est constitué d'un ensemble de fichiers de commandes et de scripts


regroupés, pour la plupart, dans le répertoire / var / spool / cron :
• / var / spool / cron / atjobs : répertoire contenant les requêtes soumises
par at;
• / var / spool / cron / username : fichier contenant les requêtes soumises
à cron par chaque utilisateur via la commande crontab;

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.

syntaxes : crontab [ -u utilisateur ] fichier


crontab [ -u utilisateur ] { -l | -r | -e }

La première syntaxe est utilisée pour copier le fichier spécifié dans le


répertoire cron.
-r efface le fichier spécifié du répertoire cron de l'utilisateur.
-l affiche le contenu des fichiers du répertoire cron de l'utilisateur.
-e édite le fichier cron

Sur certain Unix l'option –e n'existe pas il faut pour créer un fichier cron
réaliser les commandes suivantes :

crontab -l > tabcron_temp # récupération du fichier existant


vi tabcron_temp # édition pour modification
crontab tabcron_temp # nouvelle création du fichier dans le
# répertoire prévu à cet effet
rm tabcron_temp # suppression du fichier temporaire

 Si le fichier / etc / cron.allow existe, seuls les utilisateurs contenus dans ce


fichier ( un utilisateur par ligne ) peuvent utiliser crontab pour créer un
fichier de soumission de tâches.

 A l'inverse, on peut utiliser un fichier / etc / cron.deny pour désigner les


utilisateurs qui ne sont pas autorisés à utiliser crontab.

jj/10/OO ESAT 4
Systèmes Répartis UNIX Gestion des tâches

2.2. Format d'un fichier crontab

Le fichier crontab est composé d'une succession de lignes composées de 6


champs, séparés par des espaces ou des tabulations :

minute heure jour_du_mois mois jour_semaine chemin

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.

On peut utiliser : ' -' pour indiquer un intervalle ;


', ' pour indiquer une liste ;
' * ' pour indiquer toutes les valeurs possibles.

 cron ne lit les tables qu'au démarrage ou lorsqu'une nouvelle commande


est soumise via crontab. Les changements dans les tables de soumissions
réalisés manuellement ne sont pris en compte qu'au boot suivant.

jj/10/OO ESAT 5
Systèmes Répartis UNIX Gestion des tâches

3. Les commandes at

at permet de lancer un programme, ou une commande, à un instant futur donné.

Lorsqu'elle est invoquée, cette commande renvoie un identificateur de tâche ( job_id )


et crée un fichier qui est stocké dans le répertoire / var / spool / at

syntaxes : at [-V] [-q fichier] [-f fichier] [-mldbv] HEURE


at -c commande [commande...]
atq [-V] [-q fichier] [-v]
atrm [-V] commande [commande...]

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.

 Si aucun de ces deux fichiers n'existe, seul le Super-utilisateur a le droit d'appeler


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

4. Les commandes batch


batch lance la commande qui sera exécutée lorsque la charge du système le permet.

Lorsqu'elle est invoquée, cette commande renvoie un identificateur de tâche ( job_id )


.Un fichier est créé et est stocké jusqu'à son exécution dans le répertoire / var / spool /
at

syntaxes : batch [-V] [-q fichier] [-f fichier] [-mv] [HEURE]

 La commande batch est un script shell qui contient simplement :

#! /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

Vous aimerez peut-être aussi