Eu agendo algumas tarefas usando o crontab.
O que acontecerá se meu computador for desligado ou desligado durante o horário em que o cron foi programado para fazer alguma coisa?
Cada trabalho cron perdido é executado depois que o computador é ligado ou os trabalhos perdidos daquele dia são ignorados? Se os trabalhos perdidos não forem retomados, existe alguma maneira de configurar o cron para que ele execute as tarefas perdidas após o computador ser ligado novamente?
Respostas:
Quando o computador é desligado (ou o daemon cron não está em execução), os trabalhos cron não serão iniciados.
Se você tiver trabalhos que gostaria de executar após o fato durante os períodos em que o computador for desligado, use o anacron. Instalado por padrão, consulte "man anacron", "man anacrontab" ou o arquivo / etc / anacrontab para obter mais informações.
O Ubuntu usa o anacron por padrão para entradas do crontab em:
deixando os crontabs restantes para serem tratados pelo daemon cron principal, especificamente:
NOTAS
O Anacron em si não é executado como um daemon, mas depende dos scripts de inicialização do sistema e do cron para ser executado.
Na caixa do Ubuntu 8.04 que estou vendo, /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 possui um pouco mais de informações do que as contidas nas páginas de manual.
EXEMPLOS
Para trabalhos simples "diariamente", "semanalmente", "mensalmente", 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 o seu computador estiver desligado no dia em que os scripts "semanais" normalmente rodariam, ele será executado na próxima vez 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:
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 "falhe" na execução no dia 3, você usaria isso em / etc / anacrontab (não se esqueça de remover a linha do / etc / crontab):
O "atraso" de "5" acima significa que o anacron aguardará 5 minutos antes de executar este trabalho. A idéia é impedir que o anacron ative as coisas imediatamente no momento da inicialização.
fonte
anacron
, instale ocronie-anacron
pacote.Isso depende de qual cron planejador você usa. O daemon básico do vanilla cron não executará tarefas perdidas devido ao tempo de inatividade do sistema. No entanto, existem outros agendadores cron projetados especificamente para esta situação que farão isso por você. Os dois exemplos mais comuns são anacron e fcron .
fonte
As tarefas agendadas com o computador desligado não serão executadas quando o computador for ligado novamente.
fonte
Se você desligar enquanto os trabalhos do cron estiverem em execução, o sistema será encerrado e os trabalhos do cron serão interrompidos (ou não serão executados).
Uma alternativa que você pode verificar é o anacron.
fonte
Realmente depende do cron deamon que você está executando. O Vixie-cron irá simplesmente pular cronjobs perdidos. O fcron executará os componentes perdidos o mais rápido possível. O IIRC também é baseado no vixie-cron, portanto, se é isso que você está procurando, você pode conferir o fcron.
fonte