Время в linux. UTC или localtime?

Сразу после установки линукса необходимо выполнить кое-какие начальные настройки: локаль, сеть, время… Так вот о времени.

В линукс есть два времени: аппаратное и системное. Аппаратное — это время на часах материнской платы компьютера, а системное — это время в самой операционной системе.

В файле /etc/adjtime хранится величина отклонения аппаратных часов и какое время они показывают, локальное или UTC.

Команда hwclock показывает, устанавливает аппаратное время, синхронизирует системное с аппаратным временем и наоборот, а также задает какое время показывают часы на материнке: местное или по Гринвичу.

Команда date показывает и устанавливает системное время.

Исходя из этого время в линукс можно настроить руководствуясь двумя принципами:

  1. Аппаратное время настроено по Гринвичу, а системное время определяется согласно настроенного часового пояса в системе путем прибавления разницы к аппаратному времени;
  2. Аппаратное и системное совпадают и равны текущему местному времени.

Первый вариант очень удобен при частой смене часовых поясов или переводе часов на зимнее/летнее время. Достаточно просто сменить часовой пояс в настройках.

Текущий часовой пояс хранится в файле /etc/localtime. А задается путем создания символической ссылки, вот так:

ln -s /usr/share/zoneinfo/Europe/Kiev /etc/localtime

Теперь остается сгенерировать /etc/adjtime:

hwclock --systohc --utc

Все, «железные» часики должны быть настроены на UTC, а системное время будет определяться согласно /etc/localtime. Если куда-то переезжаем, просто меняем часовой пояс.

Для второго варианта действия аналогичные. Указываем часовой пояс и генерируем /etc/adjtime. Только при генерации hwclock запускаем с другим параметром:

hwclock --systohc --localtime

Второй вариант удобен для тех, кто одновременно использует на одной машине линукс и виндовс. В виндовсе по-умолчанию настроено так, что системное время совпадает с аппаратным. И если у вас в линуксе будет настроено по UTC, то в линукс и виндовс время будет постоянно отличаться. Виндовс тоже можно перенастроить на первый вариант, но эта статья про линукс.

Поделиться в FacebookДобавить в TwitterДобавить в Telegram

Комментарии

  1. (#)   Farxial:

    Большое спасибо _

    И теперь понятно, что в установщике Debian означает галочка, что системные часы показывают время в UTC. А ведь даже нет подсказки, которая сделала бы этот момент интуитивно понятным (время + select {это время по UTC | это локальное время}), жаль.


  2. (#)   Владислав:

    огромное спасибо


  3. (#)   Михаил:

    один умный напишет, а остальные просто бездумно переписывают одно и тож сочинение с сайта на сайт, а вот необходимо отключить синхронизацию времени с интернетом в linux, и не на одном сайте ни слова…. если уж пишите что-то так давайте описание в двух хотяб вариантах,


Оставить комментарий

Ответ на Время в linux. UTC или localtime?