Como o anacron determina o trabalho diário, semanal e mensal a ser executado?

0

Como o anacron determina o trabalho diário, semanal e mensal a ser executado?

  1. Que horário do trabalho anterior o anacron usará para decidir se será executado o trabalho novamente: hora de início ou término do trabalho anterior? É isso corrija que o anacron usa somente o tempo final e o cron apenas diz respeito ao horário de início?
  2. O diário significa exatamente 24 horas ou apenas diferentes dias do calendário permitirá que um trabalho diário seja executado?

    Significa semanalmente exatamente 7 dias ou apenas semanas diferentes permitirá que um trabalho semanal seja executado?

    Mensalmente significa exatamente 30 dias ou apenas meses diferentes permitirá que um trabalho mensal seja executado?

    Os arquivos de registro de data e hora são precisos até o dia, por isso acho que resposta para a pergunta diária é um dia "calendário" diferente não 24 horas?

    $ sudo cat /var/spool/anacron/cron.daily 
    20181101
    $ sudo cat /var/spool/anacron/cron.weekly 
    20181028
    $ sudo cat /var/spool/anacron/cron.monthly 
    20181011
    

Algum exemplo. Suponha que um trabalho diário comece a funcionar às 4 da manhã de hoje, e o anacron funcionará apenas uma vez amanhã às 6h.

  • Se o trabalho terminar de ser executado às 11h de hoje, a que horas a anacron será usada para decidir se deseja executar o trabalho: hora de início ou término?

  • Se o trabalho terminar às 5h hoje, a anacron decidirá executá-lo?

  • Se o trabalho terminar de rodar às 3 da manhã de amanhã, a anacron decidirá executá-lo?

Obrigado.

    
por Tim 31.10.2018 / 23:04

1 resposta

3

O anacron executa um trabalho se não tiver sido executado no período definido. Assim, um trabalho que é definido como sendo executado a cada sete dias será executado se não tiver sido executado nos últimos sete dias. O anacron calcula isso apenas observando os dias de calendário: ele carrega o timestamp da última execução, calcula o “número do dia” atual e subtrai os dois.

  1. O anacron atualiza os registros de data e hora após a execução das tarefas, de modo que usa a data de término como o início do período durante o qual o trabalho correspondente não deve ser executado novamente. O cron compara apenas a data e a hora atuais com um determinado especificador inicial, portanto, sim, considera apenas os horários de início.

  2. Diariamente significa que a última vez que um trabalho foi executado deve ser ontem ou anterior. Semanalmente significa que a última vez que um trabalho foi executado deve ser há 7 dias ou mais cedo. Mensalmente é um pouco diferente; significa que a última vez que um trabalho foi executado deve ser n dias atrás ou anterior, em que n é o número de dias no mês anterior, com um desvio quando o número de dias decorridos é exatamente igual ao número de dias no mês atual.

    Dados seus exemplos:

    • um trabalho diário terminando às 11h ou às 5h de hoje funcionará novamente amanhã;
    • um trabalho diário terminando às 3h de amanhã será executado novamente depois de amanhã.
por 01.11.2018 / 17:15

Tags