Проверяем, запланирован ли переход в зону GMT+3 в 2014 году:
zdump -v Europe/Moscow |grep 2014
Если никакой реакции не произошло, значит нужно обновить базу часовых поясов. Скачиваем:
cd /tmp
wget http://www.iana.org/time-zones/repository/releases/tzdata2014i.tar.gz
tar xvzf tzdata2014i.tar.gz
Компилируем временные зоны для Европы:
zic europe
Создаем ссылку на обновленную временную зону:
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
А теперь все вместе для копирования 🙂
cd /tmp
wget http://www.iana.org/time-zones/repository/releases/tzdata2014i.tar.gz
tar xvzf tzdata2014i.tar.gz
zic europe
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Проверяем, что все правильно:
[root@localhost tmp]# zdump -v Europe/Moscow |grep 2014
Europe/Moscow Sat Oct 25 21:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 MSK isdst=0 gmtoff=14400
Europe/Moscow Sat Oct 25 22:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 MSK isdst=0 gmtoff=10800
Обратите внимание, все процессы (и Asterisk в том числе) будут использовать старые часовые пояса до их перезапуска. У меня был случай, когда я всю голову себе сломал, почему не правильно работают переходы по времени, хотя во всех местах показывается правильное время.
Еще вот есть замечательный скрипт для проверки, взят отсюда
tzcheck.sh:
#!/bin/sh
T1=$(LC_ALL=C TZ=Europe/Moscow date -d @1409067890)
if [ "$T1" != 'Tue Aug 26 19:44:50 MSK 2014' ] ; then
echo FAIL! Wrong TZ BEFORE 26 Oct 2014!
exit 1
fi
T2=$(LC_ALL=C TZ=Europe/Moscow date -d @1416667890)
if [ "$T2" != 'Sat Nov 22 17:51:30 MSK 2014' ] ; then
echo FAIL! Wrong TZ AFTER 26 Oct 2014!
exit 2
fi
echo OK