15 сентября 2011 года Совет министров РБ принял постановление об отмене сезонных переводов часов. В связи с этим возникла необходимость перенастройки временных зон на компьютерах, смартфонах, серверах, чтобы предотвратить автоматический переход на зимнее время ночью с 30 по 31 октября.
В этой статье мы расскажем, как исправить временную зону в CentOS.
Российским пользователям RHEL/CentOS повезло: репозитории уже обновились, и для корректного исправления временной зоны достаточно выполнить одну команду:
yum update tzdata
Белорусским же пользователям повезло меньше, и поэтому для обновления зон необходимо произвести несколько дополнительных действий.
Сначала нужно убедиться, что зона требует обновления.
zdump -v Europe/Minsk | grep 2011 Europe/Minsk Sat Mar 26 23:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 EET isdst=0 gmtoff=7200 Europe/Minsk Sun Mar 27 00:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 EEST isdst=1 gmtoff=10800 Europe/Minsk Sat Oct 29 23:59:59 2011 UTC = Sun Oct 30 02:59:59 2011 EEST isdst=1 gmtoff=10800 Europe/Minsk Sun Oct 30 00:00:00 2011 UTC = Sun Oct 30 02:00:00 2011 EET isdst=0 gmtoff=7200
Если команда вывела 4 строки, то зону необходимо обновить.
Проверим, какая зона установлена в системе.
cat /etc/sysconfig/clock
Если команда вывела
ZONE="Europe/Minsk"
значит зона установлена верно, если нет — необходимо отредактировать этот файл.
Далее нужно скачать обновлённый файл временных зон и скомпилировать его.
Скачать его можно здесь.
wget http://www.iana.org/time-zones/repository/releases/tzdata2011m.tar.gz
Распакуем архив во временную папку.
tar xzf tzdata2011m.tar.gz
Наша зона находится в файле europe, можете открыть его для просмотра, найти Minsk и почитать ради интереса, что там написано.
Скомпилируем файл europe с помощью утилиты zic.
zic europe
Утилита без параметра -d компилирует и размещает файлы зон сразу в директорию /usr/share/zoneinfo, поэтому проверим, обновилось или нет.
zdump -v Europe/Minsk | grep 2011 Europe/Minsk Sat Mar 26 23:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 FET isdst=0 gmtoff=7200 Europe/Minsk Sun Mar 27 00:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 FET isdst=0 gmtoff=10800
Если видим 2 строки — то всё сделано верно, и теперь наша система узнала о необычной временной зоне FET.
Остался последний штрих — обновить локальное время системы.
Создадим ссылку на файл зоны.
ln -sf /usr/share/zoneinfo/Europe/Minsk /etc/localtime
Сверим часы: проверьте текущее время компьютера командой date.
Обсуждение закрыто.