Bonjour,
Nous allons parler aujourd'hui d'une planification de tâche en mode console grace à la commande at.
Cette commande sert à planifier l'execution d'une tâche qui sera lancée à l'instant ou vous l'aurez choisis. Attention car toutefois elle ne le sera qu'une seule fois.
Si votre ordinateur est eteint au moment ou la tâche est programmée, celle ci s'executera au demarrage de votre machine.
at ajoute la tâche à une file d'attente des tâches planifiées, que vous trouverez dans le repertoire /var/spool/at. Pour connaitre les tâches planifiées, il suffit de taper en mode console :
[loup@localhost ~]$ atq
14 2007-02-19 15:00 a loup
Ici vous voyer le numéro de la tâche : le 14 ; la date d'execution : le 19 fevrier 2007 ; et l'heure d'execution : 15h00.
Voyons comment nous servir de at.
at est gérée par atd, le démon de at.
Le démon atd doit donc être activée pour que la commande fonctionne. Vous pouvez le vérifier en tapant sous root :
[root@localhost loup]# service atd status
Si atd est activé, vous obtiendez ceci (selon les versions, cela peut légèrement différée) :
atd (pid 4912) is running...
Si le service est bien activé, voyons comment indiquer à crond le moment ou la tâche programmée devra être exécutée.
Vous pouvez par exemple donner à at une date précise comme l'exemple ci dessus. Si vous choississez par exemple le 19 fevrier 2007 à 15h00 :
at 15:00 19.02.2007
mais vous pouvez donner également une date relative, c'est à dire définie par rapport à l'instant présent comme par exemple : "demain à 15h00" :
at 3pm tomorrow
"tomorrow" signifie "demain" en anglais - pm signifie "après-midi" et - am "matin".
Si vous voulez executer une tâche aujourd'hui à 15 h00 vous pouvez également utiliser la commande courte :
at 3pm
ou encore dans une méthode francaise tout aussi simple :
at 15:00
Il y a donc plusieurs manière d'utiliser la commande at pour la même tâche.
Dans les deux derniers cas, si vous utilisez la commande at en retard sur l'heure (par exemple à 15h10 pour une commande prévue pour 15h00) celle ci s'executera le lendemain à 15h00.
Dans le cas ou vous voudriez plutôt utiliser la commande at pour exprimer une tâche qui devra s'executer dans 4h00 par exemple, alors qu'il est 15h00, vous utiliserez alors la syntaxe suivante :
at 15:00 + 4 hours
Mais vous pouvez définir également ce type de commande par rapport à l'instant présent.
Disons que vous voulez que cette tâche s'execute dans 50 minutes, il vous faudra alors ecrire :
at now + 50 minutes
Les mots clés les plus utilisés sont : tomorrow pour demain, now pour maintenant, midnigth pour minuit, noon pour midi, teatime (l'heure du thé) pour 16h00 etc
La liste des options valides est disponible dans les fichiers
/usr/share/doc/at->no_de_version>/timespec.
Voyons maintenant comment procéder pour ajouter un job dans la file générée par at :
- taper la commande at suivie de l'heure et/ou de la date
- appuyer sur la touche Entrée
- donner la liste des commandes à executer, à raison d'une par ligne (en terminant chaque ligne par Entrée)
- lorsque vous avez finit, appuyer simultanéement sur les touches "CTRL" et "d" et vous obtiendrez quelques choses comme ceci :
at heure date "Entrée"
warning :commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
at>command_1"Entrée"
at>commande_2"Entrée"
at>"CRTL d"
jol "numéro" at "date" "heure".
Enfin, pour terminer, nous allons voir comment supprimer une tâche prévue dans le gestionnaire dont nous ne voulons plus.
Tout d'abord, nous allons aller voir les tâches prévues grace à la commande :
atq
Lorsque nous aurons vu la tâche à supprimer et en particulier son numéro, il nous suffira alors d'utiliser la commande atrm suivie de son numéro pour la supprimer
atrm 5
par exemple.
Voila, vous pouvez faire des essais et apprendre a utiliser la commande at.
Je vous souhaite bon courage et vous donne rendez vous prochainement pour d'autres tutos
PS :Si cette page est blanche, c'est intentionnellement pour que les personnes désireuses de la sortir sur papier puisse le faire sans difficulté.
Retour à la page des tutos