Quando o computador está desligado (ou o daemon cron não está sendo executado), os trabalhos agendados não serão iniciados.
Se você tem trabalhos que gostaria de executar após o ocorrido durante os períodos em que o computador é desligado, use anacron. Instalado por padrão, veja "man anacron", "man anacrontab", ou o arquivo / etc / anacrontab para mais informações.
O Ubuntu usa anacron por padrão para entradas do crontab em:
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
deixando os demais crontabs para serem manipulados pelo daemon principal, especificamente:
/etc/crontab
/etc/cron.d
/var/spool/cron
NOTAS
O próprio Anacron não é executado como um daemon, mas depende de scripts de inicialização do sistema e do próprio cron para ser executado.
Na caixa do Ubuntu 8.04, o /etc/init.d/anacron é executado na inicialização e novamente pelo cron todas as manhãs às 07:30.
O README em /usr/share/doc/anacron/README.gz tem um pouco mais de informação do que as páginas de manual.
EXEMPLOS
Para tarefas simples "diárias", "semanais", "mensais", coloque uma cópia ou um link simbólico no script em um dos diretórios /etc/cron.{daily|weekly|monthly} acima. O Anacron cuidará de executá-lo diariamente / semanalmente / mensalmente, e se seu computador estiver desligado no dia em que os scripts "semanais" normalmente seriam executados, ele os executará na próxima vez em que o computador estiver ligado.
Como outro exemplo, supondo que você tenha um script aqui: /usr/local/sbin/maint.sh
E você deseja executá-lo a cada três dias, a entrada padrão em / etc / crontab seria assim:
# m h dom mon dow user command
0 0 */3 * * root /usr/local/sbin/maint.sh
Se o seu computador não estivesse ligado às 00:00 do dia 3 do mês, o trabalho não seria executado até o dia 6.
Para que o trabalho seja executado no dia 4 quando o computador estiver desligado e "perder" a execução no terceiro, você o usaria em / etc / anacrontab (não se esqueça de remover a linha do arquivo / etc / crontab):
# period delay job-identifier command
3 5 maint-job /usr/local/sbin/maint.sh
O "atraso" de "5" acima significa que o anacron esperará 5 minutos antes de executar este trabalho. A ideia é evitar que o anacron dispare imediatamente no momento da inicialização.