# LINUX: Programmer l'exécution d'un programme avec at {{METATOC 4-5}} #### Exécuter une commande à une heure précise La commande s'utilise en deux temps. - indiquer à quel moment (quelle heure, quel jour) vous désirez que la commande soit exécutée. - taper ensuite la commande que l'on veut voir exécutée à l'heure indiquée. Il faut donc d'abord indiquer à quelle heure on veut exécuter une commande, sous la forme HH:MM : L'exécution des commandes est demandée à 14 h 17 aujourd'hui. Si on tape cela dans une console, on devrait voir ceci s'afficher : $ at 14:17 //// warning: commands will be executed using /bin/sh at> at demande de taper les commandes que l'on veut exécuter à cette heure-là. Pour cet exemple, on va demander de créer un fichier à 14 h 17 : $ at 14:17 //// warning: commands will be executed using /bin/sh at> touch fichier.txt at> job 5 at Mon Nov 10 14:17:00 2010 Après avoir écrit la commande touch, at affiche à nouveau un prompt et vous demande une autre commande. On peut indiquer une autre commande à exécuter à la même heure… ou bien arrêter là. Dans ce cas, taper **Ctrl + D** (comme pour sortir d'un terminal). Le symbole `` devrait alors s'afficher, et at s'arrêtera. at affiche ensuite le numéro associé à cette tâche (à ce « job », comme il dit) et l'heure à laquelle il sera exécuté. #### Exécuter une commande le lendemain $ at 14:17 tomorrow tomorrow signifie « demain ». #### Exécuter une commande à une date précise $ at 14:17 11/15/10 La date est au format américain, les numéros du jour et du mois sont donc inversés : 11/15/10. 11 correspond au mois (novembre) et 15 au numéro du jour ! #### Exécuter une commande après un certain délai Il est possible d'exécuter une commande dans 5 minutes, 2 heures ou 3 jours sans avoir à écrire la date. Par exemple, pour exécuter la commande dans 5 minutes : $ at now +5 minutes … ce qui signifie « Dans maintenant (now) + 5 minutes ». Les mots-clés utilisables sont les suivants : - minutes ; - hours (heures) ; - days (jours) ; - weeks (semaines) ; - months (mois) ; - years (années). Un autre exemple : $ at now +2 weeks … exécutera les commandes dans deux semaines. #### atq et atrm : lister et supprimer les jobs en attente Chaque fois qu'une commande est « enregistrée », at indique un numéro de job ainsi que l'heure à laquelle il sera exécuté. Il est possible d'avoir la liste des jobs en attente avec la commande atq : $ atq //// 13 Mon Nov 10 14:44:00 2010 a mateo21 12 Mon Nov 10 14:42:00 2010 a mateo21 Pour supprimer le job n° 13 utiliser atrm : $ atrm 13