1

Я администрирую ОС CentOS 6 Linux.

Я хочу удалить всю явную информацию о часовом поясе, где такая информация может вызвать что угодно, кроме часового пояса UTC для системы. Это потому, что это шаблон виртуальной машины, а также потому, что было принято решение использовать часовой пояс по умолчанию как UTC.

Нужно ли мне изменять файл /etc/sysconfig/clock (я предполагаю, что это специфическая сущность конфигурации CentOS) или /etc/localtime , или оба? Могу ли я удалить оба, и тогда он вернется к UTC или другим внутренним значениям по умолчанию? Я просто не могу найти документацию о том, как система ведет себя без этих файлов, например. Или, может быть, мне тоже не стоит удалять, но тогда почему предпочтение в часовом поясе распространяется на два файла? Разве это имеет немного другое значение в каждом?

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

2 ответа2

4

Часовой пояс по умолчанию - нет часового пояса, то есть время UTC. Нет жестко закодированной информации о зоне, так как она может очень быстро стать неправильной / устаревшей.

Часы ядра всегда работают по UTC (или, по крайней мере, то, что он считает UTC). По умолчанию он ожидает считывать время UTC с аппаратных часов (RTC), но позволяет процессу загрузки указывать правильное смещение "местного времени", так как большинство ПК сохраняют местное время в RTC.

Пользовательское пространство работает с метками времени "эпохи" на основе UTC, но при отображении дат читает /etc/localtime или переменную среды $TZ . Если ни один не существует, вы получите UTC.

Вы также можете явно установить для них "UTC" или «Etc /UTC», если хотите (например, export TZ=UTC чтобы временно переопределить общесистемную зону).


Некоторые дистрибутивы разделяют конфигурацию, так как сами файлы zoneinfo не имеют имени зоны внутри, поэтому, как только администратор скопировал /usr/share/zoneinfo/Europe/London в /etc/localtime , больше невозможно будет узнать, что это было " Europe/London».

Например, имя необходимо при отображении текущей зоны на экранах настройки или при обновлении файла localtime при каждой загрузке (его необходимо копировать в /etc каждый раз при обновлении zoneinfo).

Другие дистрибутивы решают эту проблему, используя символическую ссылку на файл zoneinfo и читая цель символической ссылки. Это, однако, требует, чтобы /usr был установлен очень рано, что не нравится серым бородам.

Файлы конфигурации не являются переносимыми; /etc/sysconfig относится к Red Hat (в Debian есть /etc/default). Однако в системах systemd всегда используется подход symlink , и для его изменения есть инструмент timedatectl set-timezone .

1

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

Что я делаю, так как я большой поклонник UTC, так это установление часового пояса Рейкьявик. Это приводит к UTC +0, без этого надоедливого DST.

Чтобы изменить это при необходимости, вы должны использовать символическую ссылку /etc/localtime для любого подходящего определения часового пояса в /usr/share/zoneinfo/ . Я не уверен, что это специфично для CentOS, просто мы используем много серверов CentOS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .