cron x anacron

cron x anacron

Eu tenho um bom entendimento de como o cron/anacron funciona no Linux. Minha pergunta é esta:

  1. o anacron é executado no login e verifica se já se passou mais de um dia desde que os scripts foram /etc/cron.dailyexecutados
  2. anacron executa scripts /etc/cron.dailye atualiza o carimbo de data/hora em/var/spool/anacron/cron.daily
  3. saídas de anacron
  4. computador fica ligado por mais de 24 horas
  5. cron é executado e detecta uma correspondência de horário para cron.daily
  6. cron não faz nada desde entãotest -x anacrontab" == True

Se meu computador funcionar por mais de 24 horas, como o cron executa os scripts em cron.daily (esta é uma distribuição baseada em Debian)?

o padrão /etc/crontab(que é executado a cada minuto) testa a presença (ou mais precisamente, o bit -x) de /usr/bin/anacrone ignora a /etc/cron.dailypasta se a encontrar, mas não parece reiniciar o anacron para fazer o trabalho.

EDITAR:

Portanto, o cron inicia o anacron a partir da /etc/cron.dpasta, mas apenas se o computador estiver ligado e conectado às 7h30 todos os dias. Depois de fazer uma pequena planilha de kung-fu, cheguei à conclusão de que os scripts /etc/cron.dailyserão executados em qualquer lugar entre 1 minuto e 31,5 horas de intervalo.

Ex:

Cenário 1:

  • faça login às 23h59 do dia 23/05/2021
  • assumindo que o carimbo de data/hora do anacron /etc/cron.dailyé anterior a 23/05/2021, o anacron executa todos os scripts /etc/cron.dailye atualiza o carimbo de data/hora para 23/05/2021
  • sair
  • faça login novamente às 12h do dia 24/05/2021
  • anacron vê que a última execução foi 23/05/2021, e agora é 24/05/2021, então anacron executa todos os scripts em/etc/cron.daily
  • tempo decorrido entre execuções: 1 minuto

Cenário 2:

  • faça login às 12h do dia 23/05/2021
  • assumindo que o carimbo de data/hora do anacron /etc/cron.dailyé anterior a 23/05/2021, o anacron executa todos os scripts /etc/cron.dailye atualiza o carimbo de data/hora para 23/05/2021
  • o computador permanece ligado e conectado até 7h30 do dia 23/05/2021
  • cron executa o anacron a partir de seu arquivo crontab em/etc/cron.d
  • como o carimbo de data/hora é 23/05/2021, nada acontece
  • o computador permanece ligado e conectado até 7h30 do dia 24/05/2021
  • cron executa o anacron a partir de seu arquivo crontab em/etc/cron.d
  • anacron vê que a última execução foi 23/05/2021, e agora é 24/05/2021, então anacron executa todos os scripts em/etc/cron.daily
  • tempo decorrido entre execuções: 31,5 horas

Responder1

Todos os arquivos do sistema /etc/cron.daily, /etc/cron.weeklyetc. incluem uma entrada para execuçãoanacronque por sua vez inclui uma entrada para executarcron. /etc/crontabinclui entradas parapeças de execuçãopara queanacroné executado porpeças de execuçãoou pelacron.

Outro arquivo a considerar é /etc/anacrontabo que pode substituir alguns dos efeitos do/etc/crontab

Um sistema importantecronarquivo relacionado é /etc/cron.daily/logrotateum script usado para iniciar o processamento de rotação de log.

Usuário comumcrontabssão executados independentemente dos cronjobs do sistema.

Observe que /etc/crontabnão é executado a cada minuto - a atividade é determinada pelas várias especificações do crontab.

informação relacionada