Настройка локального времени во FreeBSD
Вроде бы простая задача… Однако в свете недавно принятых законов, из-за которых наша страна больше не переходит на “зимнее время”, возникли определенные трудности. Итак, имеем сервер под управлением FreeBSD 8.2-RELEASE архитектуры amd64, что в принципе не имеет никакой разницы. Операционная система была установлена в феврале этого 2011 года “с нуля”, и обновление мира больше не происходило. |
Установка локального часового пояса происходит либо во время настройки операционной системы при помощи команды sysinstall, либо позже – вручную.
В первом случае после установки FreeBSD необходимо зайти в меню sysinstall:
Configure -> Time Zone -> если часы BIOS установлены в UTC выбрать Yes, если они установлены в соответствии с вашим локальным временем выбрать No -> Выбрать регион вашего местоположения (в моем случае – Europe) -> Выбрать страну вашего нахождения (в моем случае 39 Russian Federation) -> Выбрать часовой пояс (в моем случае это 2 Moscow+00 – west Russia) -> Подтвердить свой выбор нажав OK -> осуществить выход из sysinstall.
Для установки локального времени вручную вам просто необходимо скопировать необходимый файл из /usr/share/zoneinfo
. В моем случае это будет осуществлено так:
# cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Однако, как я уже писал выше, мир FreeBSD и, соответственно, zoneinfo не обновлялись с февраля 2011 года, т.е. с даты ДО принятия закона об отмене перехода на “зимнее время”. Из-за этого 30 октября на моем сервере время вопреки всему благополучно “перешло” на час назад. Все бы ничего, ели бы это был отдельно стоящий сервер, но в моем случае на нем установлен NTP-сервер для синхронизации времени рабочих станций в домене…
Для того, чтобы обновить zoneinfo во FreeBSD и держать их в актуальном состоянии, необходимо установить порт misc/zoneinfo. Делается это так:
# portsnap fetch update # cd /usr/ports/misc/zoneinfo # make install clean
После чего вам необходимо заново скопировать нужный вам файл (соответствующий вашей временной зоне) из /usr/share/zoneinfo
. В моем примере копируется зона для Москвы:
# cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Или же воспользуйтесь командой tzsetup, которая предоставляет вам выбор часового пояса с помощью графического меню в стиле sysinstall.
Проверьте время командой date.
# date вторник, 1 ноября 2011 г. 10:55:23 (MSK)
Почти наверняка оно будет показывать время “на час вперед”. Для синхронизации часов с каким-нибудь публичным сервером точного времени выполните команду ntpdate:
# ntpdate ru.pool.ntp.org
Где ru.pool.ntp.org пул публичных ntp-серверов в Российской Федерации.
Или же установите время вручную, с помощью команды date. Формат команды следующий: date ccyymmddHHMM.ss
, где:
- cc – задает текущий век
- yy – год
- mm – месяц года
- dd – день месяца
- HH – часы
- MM – минуты
- .ss – секунды.
Таким образом, чтобы установить правильное время, нам необходимо дать следующую команду:
# date 20111101095600
Проверяем:
# date вторник, 1 ноября 2011 г. 09:56:06 (MSK)
Задача решена.
спасибо. очень помогло.
благодарю, помогло.
Доброго дня!
Не обновляется часовой пояс. Остается переход на зимнее время. Помогите, пожалуйста.
Александр – в этой статье все подробно расписано. Все, что опубликовано – справедливо для любой системы freebsd.
1. необходим выход в интернет
далее все команды выполнять, имея права root
2. обновляем порты – portsnap fetch update
3. устанавливаем актуальный zoneinfo – cd /usr/ports/misc/zoneinfo&&make install clean
4. в зависимости от региона, где вы находитесь, ищите вашу зону в /usr/share/zoneinfo
5. копируете вашу зону в /etc – cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime (эта зона справедлива для Москвы)
6. синхронизируете локальное время с временем интернета (в зависимости от вашей зоны оно установится правильно автоматически) – ntpdate ru.pool.ntp.org
7. все готово, проверяете командой – date
Еще лучше не копировать файл временной зоны в /etc, а выполнить следующую команду:
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
которая сделает символьную ссылку на временную зону и вам больше не понадобиться ее копировать при последующем обновлении порта misc/zoneinfo.
Проверить результат вы сможете командой:
ls -l /etc | grep localtime
lrwxr-xr-x 1 root wheel 33 27 окт 09:10 localtime -> /usr/share/zoneinfo/Europe/Moscow