¿Cómo evitar que atd ejecute trabajos anteriores?

¡The at daemon es una gran herramienta! Sin embargo, si un trabajo está progtwigdo para las 8:00 a.m. y la máquina está apagada en ese momento, ejecutará el trabajo cada vez que se inicie la máquina. Lo que me gustaría hacer es evitar que ejecute el trabajo si el time ha pasado. He buscado en las páginas man, y en línea, pero o bien no hay una respuesta o no pude encontrar una. Estoy usando Arch, pero hasta donde yo sé, es muy similar en todas las distribuciones.

¡Cualquier ayuda es muy apreciada!

Solutions Collecting From Web of "¿Cómo evitar que atd ejecute trabajos anteriores?"

¿Cuándo un trabajo se convierte en un trabajo pasado? Si enciendes el sistema a las 7:59:50 y el daemon comienza a las 8:00:01 , ¿se debe ejecutar el trabajo? ¿Qué pasa si el daemon comienza a las 7:59:59 pero toma dos segundos para leer todos sus files?

¡Tú decides! Comience su trabajo con una verificación de time, y aborte si el time ha pasado.

 export execute_by_date=$(date +%s 'tomorrow 8:01') at tomorrow 8:00 [ "$(date +%s)" -le "$execute_by_date" ] || exit do_stuff ␄ 

Podría escribir un guión de inicio que cancele todas las tareas pendientes al apagar o reiniciar.

No estoy seguro acerca de Arch-Linux – ¿hay /etc/sysconfig/at o algo similar? Quizás es solo un cambio de configuration que tienes que voltear …

Mi voto es para el cron daemon.

Si necesita ejecutarlo en momentos específicos del día, pero no a la misma hora todos los días, crearía un crontab con una input por range de día con un time de ejecución específico:

Algunos ejemplos tomados de crontab(5) :

 # run five minutes after midnight, every day 5 0 * * * command # run at 2:15pm on the first of every month 15 14 1 * * command # run at 10 pm on weekdays 0 22 * * 1-5 command 

Lo que quieres es el cron daemon. Hace exactamente lo que quieres.

Alimenta tu motor de búsqueda favorito para cron daemon y tienes un montón de manuales e instrucciones. man cron y man crontab también son útiles.