Exécuter une commande en différé avec Linux

Vous devez exécuter une seule fois une commande mais d’ici une heure ou quelques minutes … voici une commande : at elle permet de réaliser cette fonction.

Imaginons vous souhaitez recharger apache (/etc/init.d/apache2/reload) à 22h48 :

root@archimede:~# at 22h48
warning: commands will be executed using /bin/sh
at> /etc/init.d/apache2 reload
at>
job 2 at Sun May 16 22:48:00 2010

Vous entrez la commande « at » suivi de l’heure, un prompt vous demandera quelle commande vous voulez exécuter à cette heure (et d’autres commandes si vous en avez) validez par entrée chaque saisie. Une fois terminée appuyez sur Ctrl+D

Informations supplémentaires :

On peut aussi lui fournir l’un des arguments suivants : midnight (minuit), noon (midi), ou teatime (l’heure du thé, soit 16 heures). Il est également possible de fournir un suffixe du type AM (matin), ou PM (après-midi) avec une heure sur un cadran de 12 heures. On peut indiquer le jour de lancement, en précisant une date du type nom-du-mois (en anglais) jour et éventuellement année, ou encore une date du type MMJJAA ou MM/JJ/AA ou JJ.MM.AA. La date doit suivre l’heure. On peut indiquer une heure de la forme now (maintenant) + nombre d’unités, où les unités peuvent être minutes, hours (heures), days (jours), ou weeks (semaines) et on peut également demander à at de déclencher le travail le jour même en ajoutant le suffixe today ou le lendemain en ajoutant tomorrow.

Exemple : ce midi (même commande que précédemment) :

root@archimede:~# at noon
warning: commands will be executed using /bin/sh
at> /etc/init.d/apache2 reload
at>
job 2 at Sun May 16 22:48:00 2010

Commandes supplémentaires

Vous pouvez utiliser la commande atq pour afficher la liste des opérations programmées :

3       Mon May 17 22:48:00 2010 a root
4       Mon May 17 22:50:00 2010 a root

La commande atrm permet de supprimer une tâche programmée en la combinant avec son numéro de tâche (obtenu grâce à atq) :

atrm 3

Si vous souhaitez planifier des tâches à répétition, lisez cet article : Tâches planifiées avec Linux