8 ноября 2011 г. FreeBSD

FreeBSD. Обновление таймзоны по повелению президента

8 февраля 2011 года президент России Дмитрий Медведев дал поручение правительству об отмене перевода стрелок: после перехода на летнее время 27 марта 2011 года Россия должна жить только по летнему времени, которое опережает поясное (принятое декретом 1919 года) на 1 или 2 часа в зависимости от региона. В соответствии с этим поручением был подготовлен «Закон об исчислении времени», который Государственная дума приняла 20 мая. 3 июня 2011 года президент подписал Закон, и он вступил в силу с 5 августа 2011 года

Летнее время

FreeBSD 8.1 как и многий другой софт не подчинился новому закону Дмитрия Анатольевича, так что будем исправлять ситуацию.

Поставим zoneinfo, оттуда будем брать новую таймзону

$ cd /usr/ports
$ portsnap fetch update
$ cd misc/zoneinfo
$ make install clean

Проверим работает ли нужная нам таймзона и текущее время:

$ zdump /usr/share/zoneinfo/Europe/Moscow 
/usr/share/zoneinfo/Europe/Moscow  Wed Nov  9 00:16:29 2011 MSK
$ date
Wed Nov  8 23:16:40 MSK 2011

Как видим расходится, так что установим новую хорошую таймзону:

$ cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime 
$ date
Wed Nov  9 00:16:56 MSK 2011


Не забудьте перезагрузить "mysqld":

/usr/local/etc/rc.d/mysql-server restart

Не взлетел PHP?

Если PHP не взлетел, то используйте pecl-timezonedb:

cd /usr/ports/misc/pecl-timezonedb
make install clean

и убедитесь что "timezonedb.so" добавился в "/usr/local/etc/php/extensions.ini":

...
extension=timezonedb.so

Синхронизация

Просинхронизируйте ваше время:

ntpdate -v -b europe.pool.ntp.org

Можете настроить "rc.conf" для постоянной синхронизации времени:

ntpdate_enable="YES"
ntpdate_hosts="europe.pool.ntp.org"

Так же можете почитать man page ntpdate и посмотреть какие ещё есть параметры конфигурации для "rc.conf":

$ grep -r ntpdate /etc/defaults/rc.conf 
ntpdate_enable="NO"             # Run ntpdate to sync time on boot (or NO).
ntpdate_program="/usr/sbin/ntpdate"     # path to ntpdate, if you want a different one.
ntpdate_flags="-b"              # Flags to ntpdate (if enabled).
ntpdate_config="/etc/ntp.conf"  # ntpdate(8) configuration file
ntpdate_hosts=""                # Whitespace-separated list of ntpdate(8) servers.

Комментарии

ну наконец-то!
я же без статей от адворда сервер вобще не могу админить!

Для Debian вместо zoneinfo надо юзать tzdata и сначала его надо обновить:

apt-get install tzdata

Блин.. у Меня после обновления pecl-timezonedb слетели модули php
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/include/php/ext/xml.so' - /usr/local/include/php/ext/xml.so: Undefined symbol "second_arg_force_ref" in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/usr/local/include/php/ext/xml.so' - /usr/local/include/php/ext/xml.so: Undefined symbol "second_arg_force_ref" in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/include/php/ext/sockets.so' - /usr/local/include/php/ext/sockets.so: Undefined symbol "fourth_arg_force_ref" in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/usr/local/include/php/ext/sockets.so' - /usr/local/include/php/ext/sockets.so: Undefined symbol "fourth_arg_force_ref" in Unknown on line 0
phpinfo()
PHP Version => 5.3.8

Что делать то?

  1. удалил либы из /usr/local/lib/php/20060613
  2. пересобрал порт /usr/ports/lang/php5-extensions/

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -pПАРОЛЬ mysql

Оставьте свой комментарий

Markdown