Cron es una genial herramienta para lanzar tareas programadas dentro de un servidor linux. Pero y si quieremos dejar programado el lanzamiento de un proceso para simplemente a una hora y fecha específica sin que sea parte de una tarea con repetición, es posible? Pues sí, y el daemon de at aparece al rescate.
En la mayoría de sistemas linux at y su daemon atd vienen instalado por defecto, al igual que crond, en caso contrario habría que recurrir al gestor de paquetes de confianza de tu distro
Para programar y encolar una tarea lo recomendable es hacer un script que haga lo que necesitamos, imaginemos que el script está en /home/usuario/tarea_programada.sh
Para encolar la tarea deberíamos llamar a la herramienta at con el siguiente formato:
echo "comando a ejecutar" | at <hora y fecha>
un ejemplo concreto?
echo "sh /home/usuario/tarea_programada.sh" | at 09:00 AM 12/15/2023
Esto planificará la ejecución del comando que hay dentro del echo para las 9 de la mañana del día 15 de Diciembre del 2023. Fácil y rápido
Para saber que comandos hay encolados podemos hacer uso del comando
atq
este mostrará las tareas encoladas, donde la primera columna de la respuesta es el jobid
Si nos equivocamos a la hora de encolar una tarea, o bien ya no queremos que se haga la tarea que habiamos programado podemos hacer uso de
atrm <id de la jobid>
El comando at permite alguna que otra cosa más, pero esta guía se explica lo más básica y no hay intención de ir más allá.
Última actualización: 15 de Diciembre de 2023 a las 11:04 (CET)