cron
não fornecerá uma lista de eventos. O que ele pode fazer é iniciar seu script regularmente. Faça com que o script faça o seguinte:
- leia um carimbo de data e hora de um arquivo de configuração em var X
- incremente X com um intervalo de evento pré determinado (por exemplo, 60 minutos)
- enquanto X < data-hora atual executa o resto do script e escreve X no arquivo de configuração e repete 2
- (você pode querer esperar um tempo mínimo no loop)
Dessa forma, o script, mesmo que a máquina seja desativada enquanto estiver em execução, alternará o sinalizador quantas vezes desejar. Como o script não faz nada se o arquivo de carimbo de data / hora não for mais antigo que o intervalo, você poderá chamá-lo do cron job com muito mais frequência do que teria que ser executado. Dessa forma, recuperar o atraso após uma reinicialização não precisa acontecer (em média) após metade do tempo de intervalo. (por exemplo, agende o script para ser executado a cada cinco minutos). Você terá que usar um bloqueio para evitar que um script seja executado duas vezes (enquanto um está tentando recuperar o atraso após um desligamento).