Дата и время во FreeBSD
Установка даты и времени в системе FreeBSD производится с помощью той-же команды data с передачей ей соответствующих аргументов. Формат для установки даты и времени таков:
date ccyymmddHHMM.ss
где:
cc - задает текущий век
yy - год
mm - месяц года
dd - день месяца
HH - часы
MM - минуты
.ss - секунды
Например:
freebsd88/# date # Показать установленные: дату, время, временную зону Wed Mar 16 11:24:05 UTC 1910 freebsd88/# date 201008062025 # Устанавливаем новые параметры времени Fri Aug 6 20:25:00 UTC 2010 freebsd88/# date # Проверяем Fri Aug 6 20:25:03 UTC 2010
Век указывать не обязательно, по умолчанию date поставит 20-й.
Что-бы изменить только время, делаем следующее:
freebsd88/# date 2125 # Указываем новое время Fri Aug 6 21:25:00 UTC 2010 freebsd88/# date # Проверяем Fri Aug 6 21:25:02 UTC 2010
Что-бы выставить секунды, нужно дописать их через точку после времени, таким образом:
freebsd88/# date 2125.10 Fri Aug 6 21:25:10 UTC 2010
Обратите внимание, временная зона у нас установлена как UTC ( Universal Time Coordinated ).
Установить свою временную зону во FreeBSD, можно несколькими способами. Самый оптимальный и простой вариант, это скопировать файл соответствующей временной зоны в системную директорию /etc с именем localtime. Файлы зон можно найти в /usr/share/zoneinfo. Итак копируем файл /usr/share/zoneinfo/Europe/Moscow в файл /etc/localtime
freebsd88/# cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
freebsd88/# date
Sat Aug 7 01:58:54 MSD 2010 # временная зона которую мы установили
Кроме вышеописанного, можно задать необходимое значение переменной окружения TZ, системной оболочки. В зависимости от используемой оболочки:
для csh
freebsd88/# setenv TZ Europe/Moscow freebsd88/# date Sat Aug 7 01:46:28 MSD 2010
для sh
freebsd88/# export TZ=Europe/Moscow freebsd88/# date Sat Aug 7 01:48:42 MSD 2010
Ну и конечно рекомендую почитать man date
Сегодня в статье мы покажем как происходит установка времени в FreeBSD.
Все мы знаем, что доминирующая операционная система — это Windows. Не всем она нравится, поэтому часть пользователей ищет ей альтернативу. Те, кто желают уйти с Windows, чаще всего приходят к одному из дистрибутивов Linux. Но нужно понимать, что на Windows и Linux мир не зациклен. Помимо них, есть еще много других достойных операционных систем. Одна из таких систем — это FreeBSD.
FreeBSD — это альтернативная операционная система из семейства UNIX-систем. Чем-то она похожа на Linux, так как они из одного семейства, но это не Линукс-дистрибутив, как считают некоторые. FreeBSD — это отдельная самостоятельная операционная система. Да, она не популярна, но это никак не влияет на ее качество. Пользователи FreeBSD это могут подтвердить.
Сегодня мы разберем простое действие, но которое вызывает проблемы у начинающих пользователей FreeBSD — установка времени.
Установка времени в FreeBSD
Управление операционной системой FreeBSD происходит через терминал. Это ее общая черта с Linux-системами.
Для того чтобы проверить дату и время, обозначенные в операционной системе, нужно в терминале написать команду: «date». Для того чтобы изменить дату и время, нужно использовать эту же команду, но задать ей нужные параметры.
Шаблон команды для изменения даты и времени такой:
# date ccyymmddHHMM.ss
Разберем подробно, что означает этот шаблон:
«сс» — здесь нужно указать нынешний век;
«уу» — здесь нужно указать нынешний год;
«mm» — здесь нужно указать нынешний месяц;
«dd» — здесь нужно указать нынешний день месяца;
«НН» — здесь нужно указать текущие часы;
«ММ» — здесь нужно указать текущие минуты;
«.ss» — здесь нужно указать текущие секунды.
Чтобы установить текущие время и дату, просто сформируйте правильную команду в терминале по шаблону и дата с временем поменяются.
Нужно отметить, что менять дату и время можно не обязательно в таком формате, то есть можно менять все по отдельности. Например, если с датой все нормально, а нужно поменять только время, тогда написать команду можно по такому шаблону:
# date hhmm
Установка времени в FreeBSD в автоматическом режиме
Все что мы описывали выше — это установка времени в FreeBSD в ручном режиме. Но в этой операционной системе можно настраивать время в автоматическом режиме. Для этого нужно установить протокол NTP (Network Time Protocol). Кстати, этот протокол обычно предлагается к установке еще в самом начале при инсталляции операционной системы FreeBSD. Если вы его установили, тогда установка времени в ручном режиме вам не понадобится. Если у вас он по каким-то причинам не установлен, тогда нужно выполнить следующие команды в терминале:
# cd /usr/ports/net/ntp
# make install clean
После инсталляции протокола NTP, нужно немного откорректировать его конфигурационный файл, который находится по адресу «/etc /ntp.conf».
В этом файле вас должны заинтересовать строки, которые указывают этому протоколу с какими серверами ему синхронизироваться. Эти строки выглядят таким образом:
server 0.freebsd.pool.ntp.org iburst maxpoll 9
server 1.freebsd.pool.ntp.org iburst maxpoll 9
server 2.freebsd.pool.ntp.org iburst maxpoll 9
Вам нужно привести их к вот такому виду:
server 0.NN.pool.ntp.org iburst maxpoll 9
NN — это аббревиатура страны вашего проживания. Страну нужно указывать, чтобы протокол синхронизировался с серверами вашей страны. Допустим, вы проживаете в России, тогда эта строчка должна выглядеть вот так:
server 0.ru.pool.ntp.org iburst maxpoll 9 prefer
Термин «prefer» будет означать, что предпочтительней использовать данные сервера для синхронизации.
Заключение
Установка времени в FreeBSD может осуществляться ручным или автоматическим методом. В последних версиях данной операционной системы синхронизация времени происходит в автоматическом режиме. Если по каким-то причинам она отсутствует, тогда вы знаете как можно ее наладить и как установить правильное время вручную.
Для работы со временем и датой в операционной системе FreeBSD, предназначена команда date. При вызове без параметров, будут выведены текущие системные:: дата, время и временная зона в следующем формате
freebsd8/# date
Fri Aug 6 16:24:19 UTC 2010
Задание времени вручную
Установка даты и времени в системе FreeBSD производится с помощью той-же команды data с передачей ей соответствующих аргументов. Формат для установки даты и времени таков:
date ccyymmddHHMM.ss
где:
cc — задает текущий век
yy — год
mm — месяц года
dd — день месяца
HH — часы
MM — минуты
.ss — секунды
Установка временной зоны
Обратите внимание, временная зона у нас установлена как UTC ( Universal Time Coordinated ). Установить свою временную зону во FreeBSD, можно несколькими способами. Самый оптимальный и простой вариант, это скопировать файл соответствующей временной зоны в системную директорию /etc с именем localtime. Файлы зон можно найти в /usr/share/zoneinfo. Итак копируем файл /usr/share/zoneinfo/Europe/Moscow в файл /etc/localtime
freebsd88/# cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
freebsd88/# date
Sat Aug 7 01:58:54 MSD 2010 # временная зона которую мы установили
Обновление базы часовых поясов вручную
Если обновление часовых поясов требуется произвести на небольшом парке машин, то это можно сделать и в ручную.
Скачиваем новый zoneinfo и распаковываем его:
# mkdir /tmp/zoneinfo # cd /tmp/zoneinfo # fetch ftp://ftp.iana.org/tz/tzdata-latest.tar.gz # tar -xzvf tzdata-latest.tar.gz
Компилим зоны часовых поясов для Европы.
# zic europe
Создаём бэкап старой зоны и используем обновленную зону Europe/Moscow для локального времени.
# cp /etc/localtime /etc/localtime.old # cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Обновляем время через ntp-сервер.
# /usr/sbin/ntpdate pool.ntp.org # date
Вт. нояб. 18 13:57:44 MSK 2014
Проверяем актуальность обновлённого localtime.
# zdump -v /etc/localtime | grep 2014
/etc/localtime Sat Oct 25 21:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 MSK isdst=0 gmtoff=14400 /etc/localtime Sat Oct 25 22:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 MSK isdst=0 gmtoff=10800
То, что нужно. Удаляем временные файлы.
# rm -r /tmp/zoneinfo
![]() |
Вроде бы простая задача… Однако в свете недавно принятых законов, из-за которых наша страна больше не переходит на “зимнее время”, возникли определенные трудности.
Итак, имеем сервер под управлением 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)
Задача решена.


