Cronjob baseado na hora do sistema ou no seu próprio tempo

1

O Cronjob é baseado na hora do sistema ou no seu próprio tempo? Se for hora do sistema, quando eu mudar a hora do sistema manualmente, o cronjob irá acompanhar o novo tempo de configuração de acordo?

    
por Eric T 22.09.2015 / 05:41

2 respostas

1

cron usa o relógio do sistema, que verifica a cada minuto. Para alterações no relógio do sistema, a seguinte extração da página man pode ser útil:

Special considerations exist when the clock is changed by less than 3 hours, for example at the beginning and end of daylight savings time. If the time has moved forwards, those jobs which would have run in the time that was skipped will be run soon after the change. Conversely, if the time has moved backwards by less than 3 hours, those jobs that fall into the repeated time will not be re-run.

    
por 22.09.2015 / 08:28
1

Se você mover seu relógio de, por exemplo, 12:04 a 12:06 e você tem trabalhos agendados para 12:05, estes não serão executados.

Se você tiver que executar um trabalho às 12:05 todos os dias ou na primeira oportunidade depois disso (após a inicialização ou o relógio do sistema), execute esse trabalho a cada minuto (ou com um intervalo mais longo, se isso for aceitável) e tenha seu script verificado se foi executado pela última vez para este dia com base em algum arquivo de status. Se esse arquivo de status estiver lá e atualizado, o script deve sair imediatamente (ou seja, ele é executado às 12:05 ou a primeira oportunidade que teve depois disso para ser executada). Caso contrário, defina o arquivo de status e execute o restante do script, para que quaisquer outras chamadas não façam nada até que o relógio chegue às 12:05 do dia seguinte.

Especialmente se o trabalho levar mais tempo, é importante atualizar o arquivo de status primeiro e depois continuar a execução, caso contrário, a verificação 12:06 não localizará um status atualizado e iniciará a execução de outro trabalho em paralelo.

    
por 22.09.2015 / 09:16

Tags