Переход на зимнее время в AIX (Приложение)

Приложение. Подготовка операционных систем AIX и VIOS в связи с ФЗ «Об исчислении времени» от июля 2014г.

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

Описываемые в данном приложении действия являются только общими рекомендациями, не проверялись на отсутствие ошибок, не гарантируют работоспособности приложений пользователя, не являются официальным руководством к действию со стороны IBM. Для получения официальных руководств, а также помощи и услуг от IBM необходимо обратиться в службу технической поддержки IBM.

Если Вы решили самостоятельно выполнить изменения настроек AIX, мы предлагаем внимательно прочитать следующие рекомендации.

Каждый виртуальный раздел LPAR в системах POWER имеет собственные независимые аппаратные часы, которые показывают свое время и идут синхронно с системными часами. Поэтому корректировку времени необходимо выполнять в каждом разделе LPAR.

Т.к. изменения временной зоны затрагивают общие для системы параметры и файлы, исправления предлагается выполнять из под пользователя root.

Аппаратные часы в AIX должны показывать универсальное всемирное время UTC.

(я встречал случаи, когда администраторы утверждали, что у них в AIX timezone работает некорректно, поэтому они вынуждены ставить нестандартную TZ. В большинстве случаев причина этого явления в том, что у систем аппаратное время выставлено неверно. Оно должно всегда показывать UTC).

Пример, команда AIX показывает время UTC:

$ dateu

Fri Sep 5 13:34:20 UTC 2014

Пример, команда AIX показывает локальное время согласно TZ:

$ date

Fri Sep 5 17:34:21 UTC 2014

Как настроить переменную окружения TZ в формате POSIX.

В AIX переменная TZ для системы задается в файле /etc/environment/

Ниже приводятся выдержки из документации для TZ.

В стандарте POSIX переменная окружения TZ устанавливается в виде строки:

TZ=std offset [dst [offset]] [, rule , rule]

Std – название зоны для стандартного времени (обязательное поле).

Dst – название зоны для летнего времени (если есть)

Offset – смещение времени от UTC.

Rule – правило перехода на летнее время и обратно: Mm.n.

Пример: На сегодняшний день для временной зоны Москвы обычно используется TZ вида:

TZ=MSK-4

и не учитывает переход на летнее или зимнее время.

Для того, чтобы система сама, автоматически перевела время на зимнее в последнее воскресенье октября, согласно документации предлагается выставить переменную TZ как

TZ=MSK-3MSK-4,M3.5.0,M10.5.0

Такой формат TZ имеет следующий смысл: cейчас действует летнее время MSK-4, которое по правилу M10.5.0 перейдет на зимнее время MSK-3, т.е. в 2:00 ночи в последнее воскресенье октября 26.10.2014 система начнет показывать время на 1 час меньше – снова наступит 1:00 ночи. Это как раз то, что нужно !

Такие исправления с последующей перезагрузкой компьютера рекомендуется выполнить заблаговременно до 26.10.

Проблема использования формата POSIX заключается в том, что в TZ кроме перехода на зимнее, зашит и обратный переход на летнее время в по правилу M3.5.0. Т.е. в последнее воскресенье марта система переведет часы на 1 час вперед. К сожалению формат POSIX не допускает указать только одно правило. Поэтому для того, чтобы исключить второй переход в Марте 2015, потребуется еще раз исправить TZ:

TZ=MSK-3

и найти время до марта 2015 перегрузить приложения и операционную систему AIX.

В приведенных выше примерах использовалась временная зона Московского региона (Москва, Санкт Петербург и др.). Для регионов, находящихся в других временных зонах, необходимо указывать свои локальные названия зоны и смещение относительно UTC для текущего летнего и для нового зимнего времяисчисления.

 

В формате POSIX важным является указать смещение локальной зоны от UTC.

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

# echo $TZ

Europe/Moscow

Текущее значение TZ, клиент использует формат OLSON. Попробуем подобрать для него значение TZ в формате POSIX.

# dateu

Fri Sep 5 13:34:20 UTC 2014

Время и дата для UTC

# date

Fri Sep 5 17:34:21 MSK 2014

Время и дата для локальной зоны с текущим TZ

# TZ=MSK-5 date

Fri Sep 5 18:34:25 MSD 2014

Пробуем TZ в формате POSIX MSK-5 – неправильно, время отличается на 1 час.

# TZ=MSK-4 date

Fri Sep 5 17:34:28 MSD 2014

Пробуем TZ в формате POSIX MSK-4 – теперь правильно!

В результате, если вы решите перейти на формат POSIX, вы можете использовать найденное значение TZ. Для приведенного примера сейчас часы показывают летнее время, для него TZ=MSK-4. Для зимнего времени TZ будет TZ=MSK-3.

Таким образом до 26 октября 2014 включительно переменная TZ должна иметь значение

TZ=MSK-3MSK-4,M3.5.0,M10.5.0

После установки новой TZ в файле /etc/environment надо перегрузить систему.

После 26 октября 2014, но до 29 марта 2015 необходимо выставить TZ по-новому, т.е. на 1 час меньше :

TZ=MSK-3

и вновь перегрузить систему.

Для других регионов проводятся аналогичные действия со своими названиями временных зон и смещениями от UTC. Описание форматов временных зон для регионов можно найти на сайте:

http://www.ibm.com/developerworks/aix/library/au-aix-posix/index.html

Как самостоятельно изменить параметры TZ для формата Olson

Для AIX v7 формат OLSON реализован как во многих других UNIX/Linux системах, поэтому мы можем использовать исходные файлы для временных зон, взятые из открытых источников и скомпилировать их под свою операционную систему.

Алгоритм действий:

  1. Выполнить изменения в существующем файле конфигурации самостоятельно или скачать из доверенных источников исходные правила для формирования файлов timezone в формате Olson, например с сайта http://www.iana.org/time-zones

Последняя версия файла:

http://www.iana.org/timezones/repository/releases/tzdata2014g.tar.gz

(В последней версии tzdata2014g Российские изменения уже учтены).

Скачайте этот файл любым доступным образом во временную директорию в систему AIX (например /tmp, главное, чтобы там хватило места).

(Например, для скачивания можно использовать wget для систем, подключенных к интернет, или ftp, или напрямик в web browser и т.п.):

$ wget http://www.iana.org/time-zones/repository/releases/tzdata2014g.tar.gz

  1. Перейдите в директорию, куды вы скачали файл и распакуйте полученный tar.gz:

$ gzipdc tzdata2014g.tar.gz | tarxvf

  1. После успешной распаковки используйте имеющийся в AIX компилятор zic для создания собственной timezone Olson, которая не переводит часы на зимнее/летнее время, см. описание команды zic:

http://publib.boulder.ibm.com/infocenter/aix/v6r1/topic/com.ibm.aix.cmds/doc/aixcmds6/zic.htm

для этого в текущей директории создайте новую директорию, в которую будут помещаться откомпилированные файлы (в примере компилируются временные зоны, находящиеся на территории Europe и Asia, если Вам нужны другие территории, откомпилируйте их дополнительной командой):

$ mkdir test-tz

$ /usr/sbin/zic -d test-tz europe

$ /usr/sbin/zic -d test-tz asia

В результате в директории ./testtz команда zic создаст файлы Europe и Asia, в описаны временные зоны городов этих территорий.

  1. еперь можно сравнить полученный результат с действующими правилами:

Команда zdump показывает свойства временной зоны. Если зону указать в виде относительного пути (как она написана в TZ, например Europe/Moscow), команда покажет правила, действующие в системе.

$ zdumpv Europe/Moscow (относительный путь. Это то, что сейчас активно действует в системе)

. . .

Europe/Moscow Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0

Europe/Moscow Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSK isdst=0

Europe/Moscow Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 07:14:07 2038 MSK isdst=0

Europe/Moscow Tue Jan 19 03:14:07 2038 UTC = Tue Jan 19 07:14:07 2038 MSK isdst=0

Как видно в последних строках выдачи (3-я снизу) – в 23:00:00 UTC локальное время будет 03:00:00 MSK

Теперь проверим, что у нас откомпилилось, для этого в команде zdump укажем полный поть к новому полученному файлу временной зоны:

$ zdumpv `pwd`/testtz/Europe/Moscow

(используем абслютный путь к откомпилированным файлам и мы увидим новые параметры для временной зоны)

/temp/test-tz/Europe/Moscow Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0

/temp/test-tz/Europe/Moscow Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSK isdst=0

/temp/test-tz/Europe/Moscow Sat Oct 25 21:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 MSK isdst=0

/temp/test-tz/Europe/Moscow Sat Oct 25 22:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 MSK isdst=0

/temp/test-tz/Europe/Moscow Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 06:14:07 2038 MSK isdst=0

/temp/test-tz/Europe/Moscow Tue Jan 19 03:14:07 2038 UTC = Tue Jan 19 06:14:07 2038 MSK isdst=0

Теперь мы видим, что 25.10 21:59:59 UTC = 26.10 01:59:59 MSK система покажет снова 01:00:00, т.е. переведет часы на 1 час назад да так и останется (до 2038, когда истекут все часы UNIX истем, но это – другая задача…)

  1. Если вы считаете, что полученный файл вас удовлетворяет (Europe/Moscow или другой, напр. Asia/Ekaterinburg), его необходимо скопировать в директорию по умолчанию для системы:

# cprp testtz/Europe /usr/share/lib/zoneinfo

(копируем новый файл в систему, обычно – /usr/share/lib/zoneinfo, обратите внимание – пользователь root.)

# _

Примечание: описанный алгоритм изменений для формата Olson был опробован на системе AIX 7.1, SLES 10SP4. Очевидно, его можно применять для систем класса Linux и AIX, начиная с версии 7.1.

AIX версии 6.1 имеет свой собственный формат файлов, и для него применимы либо подход POSIX, либо установка patch от службы поддержки IBM.

Описываемые в данном приложении действия являются только общими рекомендациями, не проверялись на отсутствие ошибок, не гарантируют работоспособности приложений пользователя, не являются официальным руководством к действию со стороны IBM. Для получения официальных руководств, а также помощи и услуг от IBM необходимо обратиться в службу технической поддержки IBM.

Тескт подготовлен IBM

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

4 комментария “Переход на зимнее время в AIX (Приложение)”