Não é possível coordenar o tempo correto entre o sistema e o rtcwake

3

O objetivo final é ter meu sistema desligado no final de um script e acordar em um horário definido no dia seguinte. Estou usando rtcwake para fazer isso, assim (também estou imprimindo a data e a hora para a saída apenas para comparação)

/bin/date
/usr/sbin/rtcwake -m off -l -t $(date -d "21:00 today" +"%s") -n

cujo resultado é

Mon Sep 18 20:59:12 EDT 2017
rtcwake: wakeup from "off" using /dev/rtc0 at Mon Sep 18 17:00:00 2017

Portanto, embora a data e a hora retornadas por /bin/date estejam corretas e eu (acho que estou) definindo a hora de ativação para 21:00, rtcwake está interpretando a hora como 17:00, 4 horas antes . (Eu percebo que estou configurando para acordar no mesmo dia aqui. Eu quero que funcione e depois altere para acordar no dia seguinte.)

Para solucionar problemas, alterei um pouco o script, removendo o tempo definido, para ler

/bin/date
/usr/sbin/rtcwake -m off -l -t $(date +"%s") -n

que deu a saída

Mon Sep 18 21:14:46 EDT 2017
rtcwake: wakeup from "off" using /dev/rtc0 at Mon Sep 18 17:14:46 2017

que é novamente 4 horas antes do tempo real. Isso me fez pensar que date não tem o tempo correto. Mas quando eu alterei o script para remover a opção -l do comando rtcwake

/bin/date
/usr/sbin/rtcwake -m off -t $(date +"%s") -n

a saída foi

Mon Sep 18 21:18:04 EDT 2017
rtcwake: assuming RTC uses UTC ...
rtcwake: wakeup from "off" using /dev/rtc0 at Tue Sep 19 01:18:04 2017 

que é agora 4 horas após a hora atual. A diferença de 4 horas não faz sentido para mim, já que estou no EDT (New York) e o UTC é uma diferença de 5 horas.

Eu toquei mais um pouco e consegui o seguinte:

1.

/bin/date
/usr/sbin/rtcwake -m off -t $(date +"%s" -d "tomorrow 10:00") -n

Mon Sep 18 21:19:11 EDT 2017
rtcwake: assuming RTC uses UTC ...
rtcwake: wakeup from "off" using /dev/rtc0 at Tue Sep 19 14:00:00 2017

2.

/bin/date
/usr/sbin/rtcwake -m off --date tomorrow 10:00 -n

Mon Sep 18 21:20:55 EDT 2017
rtcwake: assuming RTC uses UTC ...
rtcwake: wakeup from "off" using /dev/rtc0 at Tue Sep 19 04:00:00 2017

3

/bin/date
/usr/sbin/rtcwake -m off -l --date tomorrow 10:00 -n

Mon Sep 18 21:21:16 EDT 2017
rtcwake: wakeup from "off" using /dev/rtc0 at Mon Sep 18 20:00:00 2017

Em conclusão: Eu acho que rtcwake na verdade não sabe que horas são, embora eu não possa ter certeza de que estou entrando na data e hora de ativação corretamente. Abri os manuais rtcwake e date inúmeras vezes, mas não vejo o meu problema. Muito obrigado antecipadamente!

    
por Jefferson Paul Jones 19.09.2017 / 05:08

2 respostas

0

Eu pessoalmente me testei.

Para testar, eu simplesmente fiz "sudo rtcwake -m disk -s 60", que simplesmente hibernou e acendeu após 1mins.

A coisa aqui é que o rctwake usa o UTC e não a sua hora local, se não for especificado.

Então, agora, em vez disso, você precisa sincronizar seu relógio com sua hora atual e, em seguida, com base na diferença, altere seu "etc / adjtime" usando o modo sudo e mude de acordo com a diferença.

No meu caso, eu uso o IST, que é +5: 30, ou seja, 5 horas e 30 minutos à frente, então escrevi "5:30" no arquivo adjtime.

Agora, se eu usar o comando "sudo rtcwake --local -m disco -s 60", ele mostrará a hora IST em vez da hora UTC anterior.

Então, a partir de agora, você precisa adicionar a opção "--local" ou "-l", como mencionado na manpage.

Exemplo: "sudo rtcwake --local -m no -l -t $ (data +% s -d 'amanha 09:30')"

acordaria o seu sistema no dia seguinte, às 9:30 da manhã, de acordo com a sua hora local em / dev / rtc0. Depois disso, você pode configurar um cron para configurá-lo automaticamente.

Fontes: página man do rtcwake , de como nerd, mais algumas configurações

    
por SIDDHARTH 19.09.2017 / 06:01
0

Eu estava tendo um problema semelhante ( rtcwake estava usando um horário diferente do horário "local"), mas depois de ler sobre o comando timedatectl aqui Eu finalmente percebi que meu fuso horário estava incorreto.

Eu defino o fuso horário com este comando:

timedatectl set-timezone MYTIMEZONE

Depois disso, rtcwake usa a hora correta, mesmo com as configurações padrão (não é necessário especificar --local .

    
por hoosierEE 02.04.2018 / 00:25