cron
es el demonio responsable de ejecutar tareas programadas y recurrentes (todos los días, todas las semanas, etc.); atd
está encargado de los programas a ejecutar una sola vez pero en un momento específico en el futuro.
locate
;
crontab -e
(el contenido del mismo es almacenado en el archivo /var/spool/cron/crontabs/usuario
).
/etc/crontab
o escribir archivos «crontab» adicionales en el directorio /etc/cron.d
. Estas dos últimas soluciones tienen la ventaja de poder especificar el usuario bajo el que se ejecutará el programa.
/etc/cron.hourly/
una vez por hora;
/etc/cron.daily/
una vez por día;
/etc/cron.weekly/
una vez por semana;
/etc/cron.monthly/
una vez por mes.
Sun
, Mon
, etc.);
/etc/crontab
y en los fragmentos ubicados en /etc/cron.d/
, pero no en los archivos de cada usuario);
a-b
describe el intervalo de todos los valores entre a
y b
. La sintaxis a-b/c
describe el intervalo con un incremento de c
(por ejemplo: 0-10/2
es lo mismo que 0,2,4,6,8,10
. Un asterisco «*
» es un comodín y representa todos los valores posibles.
Ejemplo 9.2. Ejemplo de archivo crontab
#Formato #min hora dia mes dds programa # Descargar los datos todas las noches a las 19:25 25 19 * * * $HOME/bin/descargar.pl # 08:00 en días de semana (Lunes a Viernes) 00 08 * * 1-5 $HOME/bin/haceralgo # Reiniciar el proxy IRC luego de cada reinicio @reboot /usr/bin/dircproxy
at
ejecuta un programa en un momento específico en el futuro. Obtiene la fecha y hora deseada como parámetros y el programa a ejecutar en su entrada estándar. Ejecutará el programa como si hubiese sido ingresado en la consola actual. at
incluso se encarga de mantener el entorno para poder reproducir las mismas condiciones al ejecutar el programa. Puede indicar la hora con las convenciones usuales: 16:12
o 4:12pm
representan 12 minutos pasadas las 4 de la tarde. También puede especificar la fecha en varios formatos europeos u occidentales, incluyendo DD.MM.AA
(27.07.15
representaría el 27 de Julio de 2015), AAAA-MM-DD
(la misma fecha se representaría como 2015-07-27
), MM/DD/[CC]AA
(es decir: 12/25/15
o 12/25/2015
representan, ambas, el 25 de Diciembre de 2015) o simplemente MMDDCCAA
(de forma que 122515
o 12252015
también representaría el 25 de Diciembre de 2015). Sin fecha, ejecutará el programa tan pronto como el reloj indique la hora especificada (el mismo día o el siguiente si ya pasó dicha hora ese día). También puede ingresar simplemente «today» o «tomorrow» representando el día actual o el día siguiente, respectivamente.
$
at 09:00 27.07.15 <<END
>
echo "¡No olvides desearle un feliz cumpleaños a Raphaël!" \
>
| mail lolando@debian.org
>
END
warning: commands will be executed using /bin/sh job 31 at Mon Jul 27 09:00:00 2015
at now + número período
. El período puede ser minutes
(minutos), hours
(horas), days
(días) o weeks
(semanas). número simplemente indica la cantidad de dichas unidades deben pasar antes de ejecutar el programa.
cron
, simplemente ejecute crontab -e
y elimine la línea correspondiente del archivo crontab. Para tareas en at
es casi igual de sencillo: ejecute atrm número-tarea
. El número de tarea es indicado por at
cuando la programó, pero puede volver a encontrarla ejecutando atq
que le proveerá una lista de las tareas programadas actualmente.