cron
is the daemon responsible for executing scheduled and recurring commands (every hour, every day, every week, etc.). atd
deals with commands to be executed a single time, but at a specific moment in the future.
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.
crontab
describe una tarea programada con los siguientes seis (o siete) campos:
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
de usuario
#Formato #min hora dia mes dds command # Descargar los datos todas las noches a las 19:25 25 19 * * * $HOME/bin/get.pl # 08:00 en días de semana (Lunes a Viernes) 00 08 * * 1-5 $HOME/bin/dosomething # cada dos horas * */2 * * * $HOME/bin/dosomethingelse # Reiniciar el proxy IRC luego de cada reinicio @reboot /usr/bin/dircproxy
at
ejecuta un programa en un momento específico en el futuro. Toma el tiempo y la fecha deseados como parámetros de línea de comandos, y el comando a ejecutar en su entrada estándar. Ejecutará el programa como si hubiese ingresado en la consola. at
incluso se encarga de mantener el entorno para poder reproducir las mismas condiciones al ejecutar el programa. Se indica se configura siguiendo las convenciones normales: 16:12
o 4:12pm
representan las 4 y 12 minutosde la tarde. Se 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.22 <<END
>
echo "Don't forget to wish a Happy Birthday to Raphaël!" \
>
| mail lolando@debian.org
>
END
warning: commands will be executed using /bin/sh job 1 at Wed Jul 27 09:00:00 2022
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.