Planification

mardi 16 septembre 2008
par  Jerome ROBERT
popularité : 6%

 

XI. Planifications des commandes :

 

A. commande crontab

 

crontab planifie des commandes à exécuter
régulièrement

 

Il est possible de programmer des commandes que le système lancera au moment
demandé, sans que l’utilisateur n’ai besoin d’être connecté. Il est
nécessaire de procéder en plusieurs étapes (si l’utilisateur est autorisé à
l’utiliser) :

Les cinq premiers champs sont numériques et décrivent les
dates et heures souhaitées pour le lancement des commandes.

-1) Minutes ( 0 à 59 )

-2) Heures ( 0 à 23 )

-3) Jours du mois ( 1 à 31 )

-4) Mois ( 1 à 12 )

-5) Jours de la semaine ( 0 à 6, avec 0 = Dimanche , 6 = Samedi )

 

Conventions de notation

* Toutes les valeurs possibles

, ( virgule ) Liste de valeurs

- ( signe moins ) Intervalle de valeurs

 

1°) Ecrire une table de planification au
format suivant (fichier texte à éditer avec vi) :

# Minutes Hour MonthDay Month WeekDay Commande

# 0->59 0->23 1->31 1->12 0(sunday)->6 script unix

0 19 * * 5 /users/jean/sauvegarde

30 12 * * 1-5 /users/gourmand/messageDejeuner

45 9 1 4 * /users/farceur/poissonAvril

15 10,16 * * 1-5 /users/jean/messagePause

 


Le caractère "*" correspond à
"n’importe quel" ou "tous les" ...

NB : les scripts qui servent à lancer des
commandes unix doivent être soignement écrits et testés.

 

2°) Enregistrer les planifications en utilisant la
commande crontab.

 

$ crontab fichier ajoute les planifications stockées
dans le fichier

$ crontab -r suppression des planifications de
l’utilisateur que vous êtes

$ crontab -l liste vos planifications

 

Les commandes sont exécutées par défaut dans le shell /usr/bin/sh.

Exemple :

$ crontab -l >> planification
ajoute les anciennes planifications à votre table.

$ crontab planification enregistre
la nouvelle table , l’ancienne est écrasée.

 

Les autorisations/interdictions relatives à
l’utilisation de crontab sont placées dans les fichiers /usr/lib/cron/cron.allow
et /usr/lib/cron/cron.deny. Ces fichiers sont mis à jour par le
Super Utilisateur ( voir man crontab pour les détails ).

Le démon (processus système) crond gère les
planifications enregistrées , il utilise des fichiers "cron" du
nom des utilisateurs qu’il place dans le répertoire /usr/spool/cron/crontabs.

Le démon crond envoie un mail à l’utilisateur lors de la
terminaison d’une tâche, si celle-ci a écrit sur l’une de ses sorties.

 

B. La commande at

at [-f script] [-m] time [ date ] [+ increment]

at -l [job...]

at -r job...

Cette commande permet de demander l’exécution de commandes en différé (
gérées par « cron » ). Il faut fournir les commandes sur l’entrée
standard
de « at ». Un fichier contenant la requête est copié vers le répertoire /var/spool/cron/atjobs
. Les processus seront exécutés avec les droits du login courant.

Options


- f script

 Commandes préparées dans un fichier

-m 

Message par « mail » en fin de traitement

-l 

Liste des travaux en attente

-r

 Annulation de travaux

 

L’argument time indique l’heure à laquelle doit être lancée la
commande.Il peut s’exprimer de plusieurs façons :

- Une heure sur 1 ou 2 chiffres

- Heure et minutes sur 4 chiffres

- Heure et minutes sous la forme HH:MM

- Une des trois formes ci-dessus avec les suffixes am ou pm

- Un des mots clés : now , midnight , next ou noon

Le deuxième argument optionnel date peut être utilisé pour
spécifier un mois, un jour de la semaine, une année ...

Les mots clés today et tomorrow sont reconnus. 

Le troisième argument incrément est un nombre suivi d’un des mots
clés :

minutes hours days weeks months ou years .

 


Exemple : 

$ at 15:30

echo "ok"

mailx -s"essai" userX < /tmp/message

^D

 

Les utilisateurs autorisés/non autorisés à utiliser at
sont gérés par le root, indépendamment du cron.

Un utilisateur peut spécifier plusieurs "jobs"
(ensemble de commandes).


Commentaires  Forum fermé

Statistiques

Dernière mise à jour

mercredi 5 juillet 2017

Publication

264 Articles
Aucun album photo
Aucune brève
6 Sites Web
2 Auteurs

Visites

45 aujourd’hui
180 hier
544442 depuis le début
6 visiteurs actuellement connectés