Confuso sobre relacionamento entre cron e anacron

6

Eu estive procurando em vão uma explicação geral de como o cron e o anacron funcionam juntos. As man pages são um pouco profundas demais para mim neste ponto.

Eu fico confuso porque eu adiciono tarefas ao crontab, e isso funciona, mas quando eu as excluo do crontab, elas ainda correm sob anacron. Eu vejo as tarefas em /etc/cron.daily, mas não tenho certeza de como elas chegaram lá. cron está rodando no meu sistema sempre, mas não anacron. Na verdade, vejo que o anacron é iniciado pelo cron!

Basicamente, eu gostaria de uma introdução em nível de usuário sobre como adicionar e remover tarefas, uma vez que as respostas fáceis de usar que lhe dizem para editar o crontab claramente não estão completas. Um link para um tutorial seria bom.

    
por Organic Marble 12.11.2016 / 16:03

1 resposta

10

Os cron e anacron são daemons que podem planejar a execução de tarefas recorrentes até um determinado momento definido pelo usuário.

A principal diferença entre cron e anacron é que o primeiro assume que o sistema está sendo executado continuamente. Se o seu sistema estiver desligado e você tiver um trabalho agendado durante esse período, o trabalho nunca será executado.

Por outro lado, anacron é "anacrônico" e é projetado para sistemas que não estão em execução 24x7. Para que funcione anacron usa arquivos com registro de data e hora para descobrir quando a última vez que seus comandos foram executados. Ele também mantém um arquivo /etc/anacrontab como cron . Além disso, cron.daily executa anacron everyhour. Além disso, anacron só pode executar um trabalho uma vez por dia, mas cron pode ser executado com tanta frequência quanto a cada minuto.

De man anacrontab :

  

Quando executado, o Anacron lê uma lista de jobs de um arquivo de configuração,   normalmente          / etc / anacrontab (veja anacrontab (5)). Este arquivo contém a lista de tarefas que          Controles Anacron. Cada entrada de trabalho especifica um período em dias, um atraso em minutos, um identificador de trabalho exclusivo e um comando shell.

     

Para cada trabalho, a Anacron verifica se este trabalho foi executado em   o último n          dias, em que n é o período especificado para esse trabalho. Se não, Anacron executa o          comando shell do job, após aguardar o número de minutos especificado como o          parâmetro de atraso.

     

Após o comando sair, a Anacron registra a data em um especial   arquivo de timestamp          para esse trabalho, para saber quando executá-lo novamente. Apenas a data é usada          para os cálculos de tempo. A hora não é usada.

Isso significa que, se uma tarefa está programada para ser executada diariamente e o computador foi desligado durante esse tempo, quando o anacron é executado, ele pode ver que a tarefa foi executada pela última vez há mais de 24 horas e executar a tarefa corretamente.

Por exemplo, se você especificar o seguinte em /etc/anacrontab :

7       15      test.daily      /bin/sh /home/username/script.sh

e no dia em que o trabalho script.sh deve ser executado, se o sistema não estiver em execução, anacron executará script.sh 15 minutos depois que o sistema voltar a funcionar.

Pouca referência:

Página inicial da Anacron

Página digital do oceano

Documentação do RedHat sobre cron e anacron

    
por Ron 12.11.2016 / 18:19

Tags