Перевод часов и обновление tzdata на Linux fedora,debian

В связи с недавними событиями   переход на зимнее/летнее время актуален не только в Windows  но и в Linux.

Немного о tzdata

Файл /etc/localtime содержит информацию о времени и всех переходах. Посмотреть содержимое в читабельном виде можно при помощи zdump. По сути это ссылка (симлинк) на информационный файл зоны или просто его копия (лучше, если ссылка - с обновлением проще)

Как правило, база данных с информацией о часовых поясах расположена в каталоге /usr/share/zoneinfo. Обновления содержимого базы данных часовых поясов можно получить с сайта ftp://elsie.nci.nih.gov/pub/

Загружаем и распаковываем во временный каталог
wget ftp://elsie.nci.nih.gov/pub/tzdata2011k.tar.gz
tar xzf tzdata2011k.tar.gz

Узнаем текущую зону
# Debian|Ubuntu
cat /etc/timezone
# Fedora, CentOS
cat /etc/sysconfig/clock | grep ZONE

Резервную копию текущего файла настроек сохраним
cp /etc/localtime /tmp/localtime.old

Компилируем временные зоны из файла europe. Программа zic формирует бинарные файлы нужного формата. Если запускать без ключа “-d” файлы сохраняются сразу “куда надо” - т.е. в /usr/share/zoneinfo .
zic europe

Создаём симлинк на нужную нам зону
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Обновление tzdata в Fedora

Для Fedora  (а также Centos) проверить наличие перехода с летнего на зимнее время можно командой

zdump -v /etc/localtime | grep 2011

/etc/localtime  Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0 gmtoff=10800
/etc/localtime  Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSD isdst=1 gmtoff=14400
/etc/localtime  Sat Oct 29 22:59:59 2011 UTC = Sun Oct 30 02:59:59 2011 MSD isdst=1 gmtoff=14400
/etc/localtime  Sat Oct 29 23:00:00 2011 UTC = Sun Oct 30 02:00:00 2011 MSK isdst=0 gmtoff=10800

Да.. на всякий случай - может быть не установлен часовой пояс.. проверим для Europe/Moscow
zdump -v Europe/Moscow | grep 2011

Две последние строчки означают переход на зимнее время. Если их нет - беспокоиться не нужно, система не перейдёт на зимнее время.

Можно просто поставить GMT+4 и не заморачиваться с обновлениями
ln -sf /usr/share/zoneinfo/Etc/GMT-4 /etc/localtime

Или обновить tzdata.

Устанавливаем пакет tzdata с последними изменениями (для fc8)
rpm -Uvh ./tzdata-2011k-0.1.20110921.fc8.noarch.rpm

Проверяем текущий установленный пакет tzdata
rpm -qa | grep tzdata

Рекомендацию “взять последний tzdata и сделать rpmbuild.”

обновление tzdata в Debian

apt-get install tzdata неплохо справляется с обновлением :)

Можно установить и вручную с зеркала, например, Яндекса:
http://mirror.yandex.ru/debian/pool/main/t/tzdata/tzdata_2011i-2_all.deb

sudo dpkg -i tzdata_2011n-2_all.deb
sudo dpkg-reconfigure tzdata

zdump -v /etc/localtime | grep 2012
Должно быть пусто - перевода часов больше не будет.

p.s.
Если неизвестно, какая версия Linux установлена
#узнать версию:
cat /etc/*-release
#узнать разрядность:
uname -i

Метки:

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

Добавить комментарий