Не может скоординировать корректное время между системой и rtcwake

Конечной цели нужно было отключить мою систему в конце сценария и проснуться в определенное время на следующий день. Я использую rtcwake сделать это, как так (я также печатаю дату и время к выводу только для сравнения),

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

чей вывод

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

Так, хотя дата и время, возвращенная /bin/date корректны, и я (думайте, что I), устанавливаю время пробуждения в течение 21:00, rtcwake интерпретирует время как 17:00, 4 предшествующие часа. (Я понимаю, что устанавливаю его для пробуждения того же дня здесь. Я хочу получить его работа и затем изменить его для пробуждения на следующий день.)

Для поиска и устранения неисправностей я изменил сценарий немного, удалив определенное время, для чтения

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

который дал вывод

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

который является снова 4 часами до фактического времени. Это заставило меня думать это date не имеет корректного времени. Но когда я изменил сценарий для удаления -l опция от rtcwake команда

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

вывод был

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 

который является теперь спустя 4 часа после текущего времени. 4-часовое различие не имеет смысла мне, как я нахожусь на EDT (Нью-Йорк), и UTC является 5-часовым различием.

Я еще играл вокруг некоторых и получил следующее:

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

В заключении: Я думаю это rtcwake на самом деле не знает, во сколько это, хотя я не могу быть уверен, что даже ввожу свою дату и время пробуждения правильно. Я открылся rtcwake и date руководства бесчисленные времена, но я не вижу свою проблему.Заранее большое спасибо!

3
задан 19 September 2017 в 06:16

2 ответа

Я лично протестировал меня.

Для тестирования этого я просто сделал "sudo rtcwake-m диск-s 60", который просто был в спящем режиме он и разбудил его после 1 минуты

, Вещь здесь для замечания состоит в том, что rctwake использует UTC и не местное время если не указанный.

Поэтому теперь вместо этого необходимо синхронизировать часы с текущим временем, затем на основе изменения различия "etc/adjtime", использующий sudo режим и изменение согласно различию.

В моем случае я использую IST, который является +5:30 т.е. 5 часов 30 минутами вперед, таким образом, я записал "5:30" в adjtime файле.

Теперь, Если я использую "sudo rtcwake - локальный-m диск-s 60" управляет, чтобы он показал мое время IST вместо предыдущего раза UTC.

Поэтому с этого времени необходимо добавить "-локальная" или "-l" опция также, как упомянуто в странице справочника.

Пример: "sudo rtcwake - локальный-m никакой-l-t $ (дата + %s-d ‘tomorrow 09:30’)"

разбудил бы Вашу систему на следующий день в 9:30 согласно Вашему местному времени от/dev/rtc0. После этого можно настроить крон для установки этого автоматически.

Источники: rtcwake страница справочника , , от как фанату, еще некоторые конфигурации

1
ответ дан 1 December 2019 в 17:29

У меня была подобная проблема (rtcwake использовал другое время, чем "локальное" время), но после чтения о timedatectl управляйте здесь, я в конечном счете понял, что мой часовой пояс был неправильным.

Я установил часовой пояс с этой командой:

timedatectl set-timezone MYTIMEZONE

После этого rtcwake использует корректное время, даже с настройками по умолчанию (никакая потребность во мне для определения --local.

0
ответ дан 1 December 2019 в 17:29

Другие вопросы по тегам:

Похожие вопросы: