====== Planificateur de tache at ====== //**Origine : [[http://www.linuxpourlesnuls.ch|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 : - taper la commande **at** suivie de l'heure et/ou de la date, - appuyer sur la touche Entrée - donner la liste des commandes à exécuter, à raison d'une par ligne (en terminant chaque ligne par Entrée) - 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. ---- //[[http://www.linuxpedia.fr/doku.php/expertold|Retour à la page Expert]]//