As soluções foram para ajustar os comandos no cron
De (sem backslash% s):
sudo rtcwake -m disk -l -t $(date +%s --date '16:25')
Para (com backslash% s):
sudo rtcwake -m disk -l -t $(date +\%s --date '16:25')
Após cada despertar, também executo o sincron cron-job, que é executado aproximadamente 3 minutos após o horário de despertar. Durante esse tempo, o horário do sistema operacional passará de um atraso de duas horas para o horário correto. Depois disso, o relógio do hardware pode ser sincronizado com o tempo do sistema operacional. Se você sincronizá-lo com rapidez, ele será sincronizado no tempo e arruinará o restante dos scripts que dependem do horário correto:
sudo hwclock --systohc --localtime
O último garante que o relógio do BIOS e a hora local sejam os mesmos. Caso contrário, eles se afastam um do outro quando o relógio interno da bateria se move independentemente do processador que está parado enquanto o computador está adormecido.
Para garantir que a sincronização de horário funcione, coloquei o horário correto para executar a sincronização de horário do cron e duas horas antes do intervalo de tempo do meu computador. Isso significa que se eu quiser que a sincronização de tempo seja feita às 18:55, eu também coloco em 16:55 para que ele funcione mesmo que o relógio do hardware esteja fora de sincronia com o relógio do SO
55 16,18 * * * hwclock --systohc --localtime
Você terá que monitorar seu próprio sistema para ver quais discrepâncias ocorrem. Se ele se movimentar, basta colocar mais horas para fazer a sincronização. Talvez até a cada hora. Quando o computador estiver adormecido, nada será feito, mas enquanto estiver acordado, sincronizará a hora a cada hora.