Publié le: 2015-07-10

at

L’utilitaire at est un utilitaire standard UNIX intégré dans le système. Il s’interface avec le démon atd et permet de planifier des tâches afin de les exécuter à une date précise sans intervention humaine. Cela permet par exemple de planifier l’exécution d’une requête SQL sur votre bdd de production en pleine nuit si celle ci est effectuée de manière unique.

Exécuter une tâche différée

Pour exécuter une tâche différée à un horaire précis tapez:

at 13:12

Vous remarquez alors que l’utilitaire ne vous rend pas la main. C’est normal, il attend une suite de commandes shell. Tapez donc vos commandes:

mysql < /tmp/001_init.sql
mysql < /tmp/002_pass.sql

Pour quitter le mode at, appuyez sur CTRL+D (logout) et at vous dira avoir planifié la tâche:

Job 3 will be executed using /bin/sh

Si vous souhaitez lancer le job à une autre date que celle d’aujourd’hui, vous pouvez utiliser le format de date POSIX (MMddhhmm):

at -t 12151315

at lancera la tâche le 15 décembre à 13h15

Annuler une tâche différée

Parfois il se peut que la tâche que vous avez planifiée soit annulée pour une raison technique ou non. Il est fort heureusement possible de l’annuler. Utilisez tout d’abord la commande atq afin d’identifier l’ID de votre tâche:

# atq
Date                Owner        Queue    Job#
Sat Jul 11 00:01:00 CEST 2015    root            c    1

Ensuite annulez la tâche avec la commande atrm:

atrm 1

Visualiser une tâche différée

Tout d’abord identifiez l’ID de votre tâche avec atq puis tapez la commande suivante:

at -c

Conclusion

Vous savez désormais lancer des tâches différées sur tout UNIX, vous permettant ainsi de lancer des opérations ponctuelles pendant la nuit, par exemple.