Qual a melhor forma de agendar uma tarefa que será executada anos depois? Como executar um script após 4 anos.
O cron é o melhor método para isso?
Responder1
Você pode usar at
:
$ at 10am Jul 31 2030
warning: commands will be executed using /bin/sh
at> echo Hello
at> <EOT>
job 2 at Wed Jul 31 10:00:00 2030
$ atq
1 Sun Jul 31 10:00:00 2030 a user
$ atrm 1
Responder2
Qualquer sistema de computador que esteja funcionando de forma suficientemente inalterada, após quatro anos, para que um script permaneça válido sem modificação é um tanto estático. Qualquer sistema de agendamento que pressuponha que uma caixa ainda desempenhará a mesma função muito mais tarde é bastante otimista. Falha no disco rígido ou outros problemas tornariam provável que você descobrisse se seus backups lidam ou não com o armazenamento de tarefas "transitórias".
Provavelmente seria mais robusto examinar "como testar se a tarefa de manutenção X foi executada de forma que a vida útil dos dados tenha sido estendida para mais N meses a partir de agora"; por exemplo, domínios todos renovados, certificados SSL não expirando, etc. Então você pode executar o trabalho diariamente, semanalmente, mensalmente ou com alguma outra frequência superior a "anual". Isso significa que o código será exercitado e você terá certeza de que ele será executado. Principalmente se a ferramenta registrar seu sucesso em algum lugar.
Se tudo mais falhar, um calendário departamental compartilhado com vários lembretes, que enviam por e-mail, pode ser útil. Você pode ter certeza de que se o calendário for substituído, ou migrado para a nuvem, ou qualquer outra coisa, alguém se esforçará para migrar todos os eventos para que os VIPs não precisem inserir nada novamente. Assim o seu lembrete será migrado “de graça” sem que ninguém precise se lembrar dessa tarefa que só acontece a cada quatro anos.