Корректное использование TZ, даты и hwclock?

Смотря больше на mailx страницу справочника, я заметил shortcut команда, которая выполняет точно, что я хотел. Я сделал ярлык на папку "All Mail" в Gmail, например. shortcut all "+[Gmail]/All Mail", и затем save 1 all добавляет сообщение к папке "All Mail", как желаемый.

5
10.04.2013, 00:38
2 ответа

--utc говорит hwclock то, что аппаратные часы сохраняют UTC, и --localtime говорит, что аппаратные часы сохраняют тот же часовой пояс как системные часы. (Более точно это говорит, что аппаратные часы сохраняют то же смещение к UTC, как системные часы в настоящее время делают — аппаратные часы часто не знают, активен ли DST.) Эти опции не имеют никакого отношения с часовым поясом системных часов.

В теории это говорит Вам все, что необходимо знать. На практике это может сбивать с толку.

# date -u; hwclock -u;
Tue Apr  9 20:08:44 UTC 2013
Tue Apr  9 15:08:45 2013  -0.397120 seconds

“Сначала, скажите мне системное время в UTC. Затем принятие аппаратных часов сохраняет UTC, каково время в локальном часовом поясе?”

# date; hwclock --localtime
Tue Apr  9 15:09:07 CDT 2013
Tue Apr  9 20:09:08 2013  -0.686601 seconds

“Сначала, скажите мне системное время в локальном часовом поясе. Затем принятие аппаратных часов сохраняет местное время, каково время в локальном часовом поясе?”

В большинстве систем можно установить TZ переменная среды для установки часового пояса для процесса. Это - функция POSIX. BusyBox поддерживает это (я не вижу опции выключить его во время компиляции), и Думаю, да делает uClibc. При работе над тактовой синхронизацией это может помочь управлять всеми в UTC в течение короткого времени:

export TZ=UTC0
date
hwclock
1
27.01.2020, 20:43
  • 1
    , аппаратные средства синхронизируют, на самом деле содержат некоторый часовой пояс или смещают информацию? Или сделайте -u/--localtime опции просто говорят hwclock как интерпретировать значения, которые это читает из него? –  Otheus 23.01.2017, 18:00
  • 2
    @Otheus AFAIR, аппаратные средства отмечают время прихода на работу, ПК не содержит информации о часовом поясе. (Это было разработано, прежде чем ноутбуки были вещью. Перемещение компьютера через часовые пояса слишком редко, чтобы быть обработанным во встроенном микропрограммном обеспечении.) hwclock утилита должна быть сказана то, что смещает для применения при доступе к аппаратным часам. –  Gilles 'SO- stop being evil' 23.01.2017, 19:56
  • 3
    Спасибо Gilles. К вашему сведению KVM/Qemu, кажется, реализует некоторую опцию "Smart hwclock", которая определяет, хранит ли гость ОС UTC или localtime. Поведение состоит в том, что hwclock должен зеркально отразить systime гипервизора (в UTC), и если гость пишет значение (hwclock -w) это - час прочь (единственный тест, который я провел), он предполагает TZ на основе смещения. Тот путь в будущем, даже после VM выключаются, это может правильно предположить время, которое ожидает гость. –  Otheus 23.01.2017, 23:25

Я устанавливаю свою информацию времени со следующими командами:

# setup local timezone
rm /etc/localtime
# setup for EDT and EST (+4 EDT; +5 EST)
ln -s /usr/share/zoneinfo/EST5EDT /etc/localtime
# setup for only EST (+5 EST)
#ln -s /usr/share/zoneinfo/EST /etc/localtime
# setup for only Daylight Saving Time
#ln -s /usr/share/zoneinfo/EDT /etc/localtime

rm /etc/timezone
echo "US/Eastern" > /etc/timezone
export TZ="/usr/share/zoneinfo/America/New_York"

Примечание: системные часы набора после этого сценария работают с date -u MMDDhhmm команда с помощью атомарных часов в качестве дрейфов машинного времени после выключается

0
27.01.2020, 20:43
  • 1
    Будучи ARM / Busybox / очень сокращенный Linux, у меня нет доступа к/usr/share/zoneinfo или некоторым из других обычных каталогов / установка файлов. Я могу попытаться вручную создать их, но я не знаю, как это пойдет. –  trycatch 10.04.2013, 00:35
  • 2
    Если Вы только используете команду даты как выше, то в документе Справки Команды BusyBox говорится, что Вы не должны преобразовывать в местное время, если Вы придерживаетесь времени UTC, которое является теперь +4 часами перед Восточным Временем с помощью (дата-u MMDDhhmm) команду. –  Tom 10.04.2013, 01:46

Теги

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