systemadmin.es > Utilidades > El daemon atd – Programar una tarea para que se ejecute una sola vez

El daemon atd – Programar una tarea para que se ejecute una sola vez

Resulta muy común ver instalado el daemon atd en los sistemas pero lo he visto usar muy pocas veces. Se trata de un daemon para programar tareas similar al cron, pero en lugar de programar tareas repetitivas se usa para programar tareas que ejecutamos una vez a una determinada hora.

Podemos usar el comando at seguido de la fecha para configurar una tarea. Para ello deberemos indicar la fecha que la queremos ejecutar y luego deberemos introducir los comandos (acabando con Control-D):

# at now
at> date > /tmp/lol
at> <EOT>
job 1 at 2011-07-01 00:20
# cat /tmp/lol
Fri Jul  1 00:20:54 CEST 2011

También podemos indicar un fichero a ejecutar mediante la opción -f:

$ at -f /bin/test tomorrow
job 5 at Sat Jul  2 06:15:00 2011
$ at -f /bin/test next week
job 6 at Fri Jul  8 06:15:00 2011

Para listar las tareas programadas tenemos la opción -l de at o bien atq:

$ at -l
6	Fri Jul  8 06:15:00 2011 a jprats
5	Sat Jul  2 06:15:00 2011 a jprats
$ atq
6	Fri Jul  8 06:15:00 2011 a jprats
5	Sat Jul  2 06:15:00 2011 a jprats

En el caso que quisieramos eliminar alguna tarea lo podemos hacer mediante la opción -d y el numero de tarea que nos muestra atq como primera columna:

$ at -d 6

O bien mediante atrm:

$ atrm 5

Se trata de un daemon que suelo deshabilitar ya que no se usa pràcticamente nunca y suele servir más para camuflar tareas que para otra cosa.

3 comments to “El daemon atd – Programar una tarea para que se ejecute una sola vez”

  1. Yo sí que lo uso bastante, por ejemplo para tareas como estas:

    – Para programar algún reinicio después de actualizaciones importantes como el Kernel. Lo suelo poner de madrugada. Ejemplo:

    at 5:00
    at> reboot
    

    – Cuando instalo versiones nuevas de aplicaciones hago previamente una copia de seguridad por lo que pueda pasar, y pasados unos días la borro si veo que la nueva funciona bien y no va a ser necesario usar otra vez la vieja. Como tengo mala memoria, programo el borrado para 3 meses después. Ejemplo:

    at now + 3 months
    at> rm -rf /opt/version_anterior/
    

    – Cuando doy de baja un usario de correo y me pide que le redirija la cuenta antigua a otra durante unos días. Pasados esos días, borro la redirección:

    at now + 15 days
    at> cat /etc/aliases | grep -v cuenta_vieja > /tmp/tmp_alias
    at> mv /tmp/tmp_alias /etc/aliases
    at> newaliases
    

    … o simplemente para ponerme rápidamente recordatorios por mail:

    at 11:30 tomorrow
    at> echo "Reunión con el jefe a las 12:00"  | mail yomismo@miempresa.es
    

    En fin, que cada maestrillo tenemos nuestro librillo 🙂

    Saludos…

  2. Tal como dices, cuestión de gustos 🙂

  3. super util la informacion y los ejempos muchas gracias

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>