No final de semana passado, tivemos que mudar o horário das 02:00 às 03:00.
Pergunta: O que aconteceria se houvesse um cronjob às 02:30?
crond é uma solução muito antiga para agendamento, provavelmente deve lidar com isso, mas não sei como.
Provavelmente depende da implementação do cron, mas o popular cron Vixie afirma no manual:
O cron então acorda a cada minuto, examinando todos os crontabs armazenados, verificando cada comando para ver se ele deve ser executado no minuto atual.
e
Considerações especiais existem quando o relógio é alterado por menos de 3 horas, por exemplo, no início e no final do horário de verão. Se o tempo avançou, os trabalhos que teriam sido executados no tempo ignorado serão executados logo após a alteração. Por outro lado, se o tempo retroceder em menos de 3 horas, os trabalhos que caírem no tempo repetido não serão executados novamente.
Somente trabalhos executados em um horário específico (não especificado como @hourly, nem com '*' no especificador de hora ou minuto) são afetados. Os trabalhos especificados com curingas são executados com base no novo horário imediatamente.
Como a alteração no horário de verão era inferior a três horas, seu programa seria executado logo após as 03:00
Não tenho certeza se esse é um comportamento específico do cron do Vixie, lembro-me de que foi assim que meu PDP-11 funcionou nos anos 80, mas não tenho certeza.
A melhor solução é fazer o computador funcionar com o relógio de hardware definido como UTC, (Horário Universal Coordenado), AKA GMT ou Zulu Time e alterar apenas a maneira como a hora é exibida, definindo o fuso horário local para permitir o horário de verão. hora de assumir.
No SUSE Linux, e provavelmente na maioria dos outros, se o Sistema de relógio de hardware -> Ambiente -> Relógio -> HWCLOCK estiver definido como UTC com o sinalizador -u e seu fuso horário estiver definido onde você está, o sistema exibirá automaticamente os horários locais com correções de horário de verão para você.
Isso tem várias vantagens:
Para mais informações, digite
man hwclock
um terminal.fonte