Planification
par
popularité : 2%
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é