Готовим Linux к 30 октября

Многие наверняка в курсе, что в этом году в России отменен переход на . Что это нам дает? Что 30 октября этого года время не изменится.

За часовые пояса в отвечает так называемая tz database — пакет . Для большинства дистрибутивов возможно будет достаточно обновить этот пакет (соответсующие исправления внесены в версию 2011i). Если же такого обновления для вашего дистрибутива не вышло, самый простой способ использовать Etс/GMT+4 или, если вы не ищете легких путей, перекомпилировать файл зоны. Об этом варианте и пойдет речь далее.

Для начала убедимся что наш файл зоны не актуален и система переведет время:

 [email protected]:~$ zdump -v /usr/share/zoneinfo/Europe/Moscow |grep 2011 /usr/share/zoneinfo/Europe/Moscow Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0 gmtoff=10800 /usr/share/zoneinfo/Europe/Moscow Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSD isdst=1 gmtoff=14400 /usr/share/zoneinfo/Europe/Moscow Sat Oct 29 22:59:59 2011 UTC = Sun Oct 30 02:59:59 2011 MSD isdst=1 gmtoff=14400 /usr/share/zoneinfo/Europe/Moscow Sat Oct 29 23:00:00 2011 UTC = Sun Oct 30 02:00:00 2011 MSK isdst=0 gmtoff=10800 

Итак, 30 октября все пройдет по старому расписанию.

Для начала сделаем резервную копию:

 [email protected]:~$ cp /usr/share/zoneinfo/Europe/Moscow /usr/share/zoneinfo/Europe/Moscow.bkp 

Получаем последнюю версию tz database:

 [email protected]:~$ cd /tmp [email protected]:/tmp$ wget ftp://elsie.nci.nih.gov/pub/tzdata2011k.tar.gz [email protected]:/tmp$ mkdir /tmp/tzdata2011k [email protected]:/tmp$ tar xfv tzdata2011k.tar.gz -C /tmp/tzdata2011k 

Ну а теперь собственно компиляция:

 [email protected]:/tmp/tzdata2011k$ zic -d zoneinfo europe [email protected]:/tmp/tzdata2011k$ cp /tmp/tzdata2011k/zoneinfo/Europe/Moscow \ /usr/share/zoneinfo/Europe/Moscow 

Проверяем результат:

 [email protected]:~$ zdump -v /usr/share/zoneinfo/Europe/Moscow |grep 2011 /usr/share/zoneinfo/Europe/Moscow Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0 gmtoff=10800 /usr/share/zoneinfo/Europe/Moscow Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSK isdst=0 gmtoff=14400