Переход на зимнее время в Украине для линукс систем

Автор | 29.10.2011

Заметка по мотивам предыдущей
Украина все-таки переходит на зимнее время, также на зимнее переходит Приднестровье. Отказались от перехода Россия и Беларусь, это если говорить о соседях.
Поэтому в любом случае на компьютер или сервер необходимо установить самый новый список часовых поясов.
Приступим.

Обновление штатными средствами Gentoo

Обновляем дерево portage

emerge --sync

Смотрим какие версии timezone-data у нас доступны:

eix timezone-data


Нам нужна версия 2011m которая вышла за неделю до времени Ч.
Ставим этот набор

emerge -av /usr/portage/sys-libs/timezone-data/timezone-data-2011m.ebuild 

Проверяем, что символическая ссылка localtime правильная:

ls -lah /etc/localtime
/etc/localtime -> /usr/share/zoneinfo/Europe/Kiev

Проверяем время:

date --date='20111101'
Втр Ноя  1 00:00:00 EET 2011

Вот теперь все хорошо, система перейдет в часовой пояс EET. Для уверености можно просмотреть правила перевода времени для Киева

zdump -v Europe/Kiev | grep 2011
Europe/Kiev  Sun Mar 27 00:59:59 2011 UTC = Sun Mar 27 02:59:59 2011 EET isdst=0
Europe/Kiev  Sun Mar 27 01:00:00 2011 UTC = Sun Mar 27 04:00:00 2011 EEST isdst=1
Europe/Kiev  Sun Oct 30 00:59:59 2011 UTC = Sun Oct 30 03:59:59 2011 EEST isdst=1
Europe/Kiev  Sun Oct 30 01:00:00 2011 UTC = Sun Oct 30 03:00:00 2011 EET isdst=0

Как видим, в 2011-м году в Украине запланировано два перехода времени: март и октябрь.

Вариант №2. Ручная замена файлов timezone

Есть ситуации когда система очень давно не обновлялась и если начать обновление одного пакета, то он за собой потянет кучу зависимостей. Поэтому нужно по-тихому обновить timezone-data
Да, это не правильно, но такова жизнь 🙂
Заходим на сайт IANA, которая несколько месяцев нвзвд взяла на себя ответственность за хранение и распостранение наборов временных зон и выкачиваем оттуда самую последнюю версию
Зачем это нужно? Читаем статейку Глобальная база данных часовых поясов закрыта по судебному иску
Загружаем:

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

Распаковываем:

tar -xvf tzdata2011m.tar.gz

Смотрим есть ли правила для Киева:

cat europe | grep -C 10 Kiev
Zone Europe/Kiev        2:02:04 -       LMT     1880
                        2:02:04 -       KMT     1924 May  2 # Kiev Mean Time
                        2:00    -       EET     1930 Jun 21
                        3:00    -       MSK     1941 Sep 20
                        1:00    C-Eur   CE%sT   1943 Nov  6
                        3:00    Russia  MSK/MSD 1990
                        3:00    -       MSK     1990 Jul  1 2:00
                        2:00    -       EET     1992
                        2:00    E-Eur   EE%sT   1995
                        2:00    EU      EE%sT

И видим, что последняя строка переводит нас на +2, тоесть восточно-европейское время….. вродь похоже на правду 🙂
Компилируем новый набор файлов временных зон

zic europe

проверяем:

zdump -v Europe/Kiev | grep 2011
Europe/Kiev  Sun Mar 27 00:59:59 2011 UTC = Sun Mar 27 02:59:59 2011 EET isdst=0
Europe/Kiev  Sun Mar 27 01:00:00 2011 UTC = Sun Mar 27 04:00:00 2011 EEST isdst=1
Europe/Kiev  Sun Oct 30 00:59:59 2011 UTC = Sun Oct 30 03:59:59 2011 EEST isdst=1
Europe/Kiev  Sun Oct 30 01:00:00 2011 UTC = Sun Oct 30 03:00:00 2011 EET isdst=0

Теперь точно все в норме.
Если у Вас не прошли изменения, то нужно проверить есть-ли ссылка на файл зоны:

ls -la /etc/localtime
/etc/localtime -> /usr/share/zoneinfo/Europe/Kiev

Вот и все.
PS: Еще более простой способ. Выкладываем на фтп файл europe из архива tzdata и на компьютере выполняем 3 команды:

wget ftp://10.0.0.1/tzdata/europe
zic europe
zdump -v Europe/Kiev | grep 2011

Залишити відповідь