Re: Переход на зимнее время

Главная Форумы POWER Systems AIX/Hardware Переход на зимнее время Re: Переход на зимнее время

#20430
Alexander Teterkin
Участник

Вот для Екатеринбурга написал:

AIX – Как настроить автоматический переход на зимнее время 26 Октября 2014 года в Екатеринбурге (с одной перезагрузкой)

Данный формат времени должен работать с AIX 6.1 и выше.

Не забывайте тестировать на тестовом сервере прежде чем применять на производственном (рабочем) сервере.

Смотрим текущее время:

[code]root@nim:/ # date
Fri Oct 10 11:52:41 YEKT 2014[/code]

Смотрим используемую зону:

[code]root@nim:/ # cat /etc/environment | grep TZ
TZ=Asia/Yekaterinburg[/code]

Если у вас другая временная зона (в Екатеринбурге), то нужно поменять и перезагрузить машину при первой возможности.

Смотрим запланированные смены времени в 2014 году:

[code]root@nim:/ # zdump -v Asia/Yekaterinburg |grep 2014
root@nim:/ #[/code]

Их нет. Так и должно быть. Т.к., например, обновления AIX еще не было или мы не захотели его устанавливать.

Для примера можем посмотреть как было в 2010-м и 2011-м году:

[code]root@nim:/ # zdump -v Asia/Yekaterinburg |grep 2010
Asia/Yekaterinburg Sat Mar 27 20:59:59 2010 UTC = Sun Mar 28 01:59:59 2010 YEKT isdst=0
Asia/Yekaterinburg Sat Mar 27 21:00:00 2010 UTC = Sun Mar 28 03:00:00 2010 YEKST isdst=1
Asia/Yekaterinburg Sat Oct 30 20:59:59 2010 UTC = Sun Oct 31 02:59:59 2010 YEKST isdst=1
Asia/Yekaterinburg Sat Oct 30 21:00:00 2010 UTC = Sun Oct 31 02:00:00 2010 YEKT isdst=0
root@nim:/ #

root@nim:/ # zdump -v Asia/Yekaterinburg |grep 2011
Asia/Yekaterinburg Sat Mar 26 20:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 YEKT isdst=0
Asia/Yekaterinburg Sat Mar 26 21:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 YEKT isdst=0
root@nim:/ #[/code]

Идем на официальный сайт и скачиваем там самые свежие файлы базы временных зон:

ftp://ftp.iana.org/tz/releases/

Для компиляции зоны вам понадобится следующий файл:
ftp://ftp.iana.org/tz/releases/tzdata2014h.tar.gz (на 10.10.2014 года, возможно, сейчас есть уже более свежий файл).

Загрузите файл во временную папку на вашем сервере:

[code]root@nim:/ # cd /tmp/tz

root@nim:/tmp/tz # ls
tzdata2014h.tar.gz[/code]

Распакуйте:

[code]root@nim:/tmp/tz # gzip -d tzdata2014h.tar.gz

root@nim:/tmp/tz # tar -xvf tzdata2014h.tar
x CONTRIBUTING, 2162 bytes, 5 media blocks.
x Makefile, 25347 bytes, 50 media blocks.
x NEWS, 91484 bytes, 179 media blocks.
x README, 2623 bytes, 6 media blocks.
x Theory, 34422 bytes, 68 media blocks.
x africa, 49299 bytes, 97 media blocks.
x antarctica, 15024 bytes, 30 media blocks.
x asia, 120115 bytes, 235 media blocks.
x australasia, 72007 bytes, 141 media blocks.
x europe, 142083 bytes, 278 media blocks.
x northamerica, 133131 bytes, 261 media blocks.
x southamerica, 73897 bytes, 145 media blocks.
x pacificnew, 1182 bytes, 3 media blocks.
x etcetera, 2945 bytes, 6 media blocks.
x backward, 4285 bytes, 9 media blocks.
x systemv, 1538 bytes, 4 media blocks.
x factory, 385 bytes, 1 media blocks.
x backzone, 14190 bytes, 28 media blocks.
x iso3166.tab, 4554 bytes, 9 media blocks.
x leapseconds, 2114 bytes, 5 media blocks.
x zone1970.tab, 18512 bytes, 37 media blocks.
x zone.tab, 20050 bytes, 40 media blocks.
x leap-seconds.list, 9854 bytes, 20 media blocks.
x yearistype.sh, 678 bytes, 2 media blocks.
x checktab.awk, 4725 bytes, 10 media blocks.
x leapseconds.awk, 2303 bytes, 5 media blocks.
x zoneinfo2tdf.pl, 1409 bytes, 3 media blocks.
root@nim:/tmp/tz #
[/code]

Создаем резервную копию текущей директории zoneinfo:

[code]root@nim:/ # tar cvf ZoneInfo.bakup.tar /usr/share/lib/zoneinfo[/code]

Полученный файл ZoneInfo.bakup.tar скачиваем на рабочую станцию и проверяем.

Компилируем новые файлы zoneinfo:

[code]root@nim:/tmp/tz # zic europe[/code]

Обратите внимание, что Екатеринбург хоть это и “Asia/Yekaterinburg” находится в файле “europe”.

[code]root@nim:/tmp/tz # cat europe | grep -p Yekaterinburg

Zone Asia/Yekaterinburg 4:02:33 – LMT 1916 Jul 3
3:45:05 – PMT 1919 Jul 15 4:00
4:00 – SVET 1930 Jun 21 # Sverdlovsk Time
5:00 Russia SVE%sT 1991 Mar 31 2:00s
4:00 Russia SVE%sT 1992 Jan 19 2:00s
5:00 Russia YEK%sT 2011 Mar 27 2:00s
6:00 – YEKT 2014 Oct 26 2:00s
5:00 – YEKT[/code]

Проверяем, что зона поменяет время:

[code]root@nim:/tmp/tz # zdump -v Asia/Yekaterinburg |grep 2014
Asia/Yekaterinburg Sat Oct 25 19:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 YEKT isdst=0
Asia/Yekaterinburg Sat Oct 25 20:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 YEKT isdst=0
root@nim:/tmp/tz #[/code]

26 Октября в 2:00 по местному времени часы переведутся на час назад.

Для принятия изменений перезагрузите сервер в удобное для вас время:
[code]root@nim:/tmp/tz # shutdown -Fr[/code]

Не забываем тестировать прежде чем запускать на производственных (рабочих) машинах. Для этого на тестовой машине сделайте настройки, отключите синхронизацию времени (если была), поменяйте время на 26 Октября, перезагрузитесь и посмотрите что получится при наступлении времени перехода (2 часа ночи):

[code]root@nim:/tmp/tz # while true; do date; sleep 1; done
Sun Oct 26 01:59:50 YEKT 2014
Sun Oct 26 01:59:51 YEKT 2014
Sun Oct 26 01:59:52 YEKT 2014
Sun Oct 26 01:59:53 YEKT 2014
Sun Oct 26 01:59:54 YEKT 2014
Sun Oct 26 01:59:55 YEKT 2014
Sun Oct 26 01:59:56 YEKT 2014
Sun Oct 26 01:59:57 YEKT 2014
Sun Oct 26 01:59:58 YEKT 2014
Sun Oct 26 01:59:59 YEKT 2014
Sun Oct 26 01:00:00 YEKT 2014
Sun Oct 26 01:00:01 YEKT 2014
Sun Oct 26 01:00:02 YEKT 2014
Sun Oct 26 01:00:03 YEKT 2014
Sun Oct 26 01:00:04 YEKT 2014
Sun Oct 26 01:00:05 YEKT 2014

root@nim:/tmp/tz #
[/code]
У меня на тестовой машине установлен следующий уровень AIX:
[code]root@nim:/ # oslevel -s
7100-03-01-1341[/code]

Не забываем что Java, разные приложения которые могут использовать “свое время”, СУБД, HMC и т.п. тоже надо переводить.

Дополнительная информация:
http://cs.ucla.edu/~eggert/tz/tz-link.htm
http://www.ibm.com/developerworks/ru/library/au-time/