Saltar la navegación

at

El comando at hace uso del demonio atd y lee comandos de la entrada estándar (hasta pulsar control+D) o de un fichero y los ejecuta una sola vez a la hora especificada.

Podemos ver el estado del demonio atd así:

# /etc/init.d/atd status
● atd.service - Deferred execution scheduler
   Loaded: loaded (/lib/systemd/system/atd.service; enabled)
   Active: active (running) since lun 2015-12-07 09:52:51 CET; 10h ago
     Docs: man:atd(8)
 Main PID: 549 (atd)
   CGroup: /system.slice/atd.service
           └─549 /usr/sbin/atd -f

La sintaxis del comando es:

at [ -f fichero ] momento

El momento en que se ejecutará la orden se puede especificar de varias formas, se puede consultar el fichero /usr/share/doc/at/timespec que contiene una información más detallada de los formatos posibles.

Para las horas se pueden usar los siguientes formatos:

HH A la hora en punto indicada.
HH:MM En la hora y minuto especificado.
midnight A las 00:00.
noon A las 12:00.
teatime A las 16:00.
HH:MMam     A una hora y minuto de la mañana.      
HH:MMpm A una hora y minuto de la tarde.
now En este preciso momento.

Cuando sólo se da una hora, se refiere al día actual, a menos que dicha hora haya pasado y se referirá entonces al día siguiente.

En caso de que no queramos programar para el día actual, se puede especificar una hora seguida de una fecha. Las formas de especificar fechas son:

MMDDYY

MMDDYYYY

Mes, día y año.

MM/DD/YY

MM/DD/YYYY     

Mes, día y año.

DD.MM.YY

DD.MM.YYYY

Día, mes y año.   
today Hoy.
tomorrow Mañana.

También se pueden sumar o restar tiempos a un momento determinado. Las unidades de la cantidad a sumar o restar pueden ser:

minute, minutes, hour, hours, day, days, week, weeks, month, months, year, years

El trabajo programado con at se ejecuta con la shell y el directorio activo donde se creó. La salida se envía al correo del usuario que ejecuta el comando a menos que usemos redirecciones.

Es importante recordar que si el ordenador se apaga, las tareas programadas con at se borran.

Ejemplos:

at -f script-parada 20:30   Ejecuta un script que para un servicio a las ocho y media de la tarde.  
at -f script-activacion 10:00 30.10.15 
Ejecuta un script que activa un servicio el 30 de octubre de 2015 a las diez de la mañana.
at -f script-migracion 11:30 +4 days Ejecuta un script dentro de cuatro días a las once y media de la mañana.

Podemos ver un listado de las tareas activas con atq o at -l:

# atq
12    Mon Dec  7 22:11:00 2015 a root
10    Tue Dec  8 01:59:00 2015 a root
11    Tue Dec  8 22:00:00 2015 a root

En este listado aparece el número de la tarea, su fecha y hora de ejecución y el usuario que la ejecutará.

Se pueden borrar las tareas con atrm, at -r ó at -d, seguido de uno o más números de tarea.

# atrm 10 11 12

Para determinar quién puede hacer uso de at, existe una lista blanca (/etc/at.allow) y una lista negra (/etc/at.deny).

Licencia: licencia de software libre GPL