Время в linux. UTC или localtime?
Сразу после установки линукса необходимо выполнить кое-какие начальные настройки: локаль, сеть, время… Так вот о времени.
В линукс есть два времени: аппаратное и системное. Аппаратное — это время на часах материнской платы компьютера, а системное — это время в самой операционной системе.
В файле /etc/adjtime хранится величина отклонения аппаратных часов и какое время они показывают, локальное или UTC.
Команда hwclock
показывает, устанавливает аппаратное время, синхронизирует системное с аппаратным временем и наоборот, а также задает какое время показывают часы на материнке: местное или по Гринвичу.
Команда date
показывает и устанавливает системное время.
Исходя из этого время в линукс можно настроить руководствуясь двумя принципами:
- Аппаратное время настроено по Гринвичу, а системное время определяется согласно настроенного часового пояса в системе путем прибавления разницы к аппаратному времени;
- Аппаратное и системное совпадают и равны текущему местному времени.
Первый вариант очень удобен при частой смене часовых поясов или переводе часов на зимнее/летнее время. Достаточно просто сменить часовой пояс в настройках.
Текущий часовой пояс хранится в файле /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, то в линукс и виндовс время будет постоянно отличаться. Виндовс тоже можно перенастроить на первый вариант, но эта статья про линукс.
(#) Farxial:
Большое спасибо _
И теперь понятно, что в установщике Debian означает галочка, что системные часы показывают время в UTC. А ведь даже нет подсказки, которая сделала бы этот момент интуитивно понятным (время + select {это время по UTC | это локальное время}), жаль.
(#) Владислав:
огромное спасибо
(#) Михаил:
один умный напишет, а остальные просто бездумно переписывают одно и тож сочинение с сайта на сайт, а вот необходимо отключить синхронизацию времени с интернетом в linux, и не на одном сайте ни слова…. если уж пишите что-то так давайте описание в двух хотяб вариантах,