Outils pour utilisateurs

Outils du site


expert:planificateur_de_tache_at

Planificateur de tache at

Origine : Linux Pour Les Nuls
Auteur : Lonewolf
Date : 19 février 2007

Bonjour,

Nous allons parler aujourd'hui d'une planification de tâche en mode console grâce à la commande at.

Cette commande sert à planifier l'exécution 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 éteint au moment ou la tâche est programmée, celle ci s'exécutera au démarrage de votre machine.

at ajoute la tâche à une file d'attente des tâches planifiées, que vous trouverez dans le répertoire /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 voyez le numéro de la tâche : le 14 ; la date d'exécution : le 19 février 2007 ; et l'heure d'exécution : 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érer) :

  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 choisissez par exemple le 19 février 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 exécuter une tâche aujourd'hui à 15h00 vous pouvez également utiliser la commande courte :

  at 3pm

ou encore dans une méthode française tout aussi simple :

  at 15:00

Il y a donc plusieurs manières 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'exécutera le lendemain à 15h00.

Dans le cas ou vous voudriez plutôt utiliser la commande at pour exprimer une tâche qui devra s'exécuter 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'exécute dans 50 minutes, il vous faudra alors écrire :

  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 :

  1. taper la commande at suivie de l'heure et/ou de la date,
  2. appuyer sur la touche Entrée
  3. donner la liste des commandes à exécuter, à raison d'une par ligne (en terminant chaque ligne par Entrée)
  4. lorsque vous avez finit, appuyer simultanément sur les touches et et vous obtiendrez quelques choses comme ceci :
   at heure date 
   warning :commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
   at>command_1
   at>commande_2
   at> CTRL + d
   job  numéro at date heure

Pour voir les tâches, utilisez la commande :

   atq

Pour supprimer une tâche, utilisez la commande atrm suivie du numéro de la tâche à supprimer :

   atrm 14

Voila, j'espère que ce tuto vous a plut et n'hésitez pas à poser des questions si vous avez des interrogations non satisfaites.


Retour à la page Expert

expert/planificateur_de_tache_at.txt · Dernière modification: 2014/05/09 18:56 (modification externe)