Online Documentation Server
 ПОИСК
ods.com.ua Web
 КАТЕГОРИИ
Home
Programming
Net technology
Unixes
Security
RFC, HOWTO
Web technology
Data bases
Other docs

 


 ПОДПИСКА

 О КОПИРАЙТАХ
Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.




Линукс, Часы и Время

Введение

В этом документе описано как вы можете установить ваши ч;асы в Линуксе, как установить временную зону (timezone), и другую связанную с этим информацию.

В вашем компьютере есть две разновидности часов; имеющие независимое питание и всегда запущенные (их называют по разному : ``аппаратные''(``hardware''), ``BIOS'', или ``CMOS'' часы), и другие которые определяются операционной системой запущенной на вашем компьютере (``системные'' часы). Аппаратные часы в основном используются для установки системный часов в момент загрузки ОС, , и с этого момента до момента перезагрузки ОС или выключения питания компьютера дляопределения времени будут использоваться системные часы.

В Линуксе вы имеете выбор : установить в аппаратных часах всемирное время (UTC/GMT) или локальное время (local time). Наилучший вариант : установить всемирное время (UTC), что позволит автоматически учитывать переход на зимнее/летнее время.Единственное неудобство от установление всемирного времени в аппаратных часах это в случае использования на этом-же компьютере другой ОС (в случае использования dual boot) которая счтает что аппаратные часы установленны в локальное время, поэтому время в этой систему будет неверным.

Установка временной зоны (timezone)

Временная зона под Линуксом устанавливается через символическую ссылку, из /etc/localtime на файл из дирректории /usr/lib/zoneinfo(или /usr/share/zoneinfo), чем указывается в какой временной зоне вы находитесь. Например я живу в Новгороде (Московский часовой пояс) я должен сделать ссылку /etc/localtime на файл /usr/lib/zoneinfo/Europe/Moscow. Для этого даем команду:

ln -sf ../usr/share/zoneinfo/your/zone /etc/localtime

Замените your/zoneна соответствующую вашему месту расположения зону, например Europe/Moscow или Australia/Perth. Чтобы узнать какие временные зоны доступны посмотрите в дирректорию /usr/lib/zoneinfo(или /usr/share/zoneinfo).

Установка всемирного или локального времени

Когда линукс загружен, один из скриптов инициализации запускает программу /sbin/clock (или /sbin/hwclockв RedHat'e) чтобы установить системные часы в соответствии с аппаратными часами. clockсчитает что аппаратные часы установленны на локальное время, чтобы указать что используется всемирное время используют ключь -u. Далее для RedHat Линукса надо в скрипте/etc/sysconfig/clock установить переменную ``UTC'' в значение ``UTC=true'' или ``UTC=false''. Для случая Debian'a это переменная ``GMT''в файле /etc/init.d/boot а значения ее : ``GMT="-u" '' в случае использования всемирного времени и или ``GMT="" '' в случае использования локального времени

Установка системных часов

Для установки системных часов в Линуксе, используется программа date. Для примера установка текущего времени (системного!) и даты на 31 июля, 23:16,наберите ``date 07312316'' (обратите внимание что время дано в 24-часовой записи) Если вы хотите изменить год то набиретие ``date 073123161998''. Для установки секунд набирите ``date 07312316.30'' или ``date 073123161998.30''. Чтобы узнать системное время запустите date без аргументов.

Установка аппаратных часов

Для установки аппаратных часов, установите сначало системное время а потом уже аппаратное используя программу ``/sbin/clock -w'' (или``/sbin/clock -wu'' в случае использования всемирного времени).Чтобы узнать аппаратное время запустите clock без параметров. Если аппаратные часы установлены в локальное время а вы хотите увидеть всемирное наберите ``/sbin/clock -u''

В некоторых приложениях время показывается неверно

Если какоето приложение (такое как date) показывает верноевремя, но остальные нет то вы наверно неправильно установили информацию о временной зоне. Что-бы исправить ситуацию просто создайте правильную ссылку на нужную временную зону.

Итог

  • /etc/init.d/boot (/etc/sysconfig/clock) устанавливает локальное или всемирное время используется

  • Символическая ссылка /etc/localtime на /usr/lib/zoneinfo/... для установки временной зоны.

  • Запуск ``date MMDDhhmm'' для установки текущего системного времени

  • Запустите ``/sbin/clock -w [-u]'' для установки аппаратных часов

Небольшое замечание

Ядро Linux'а всегда хранит и вычесляет врямя как число сукунд прошедшихс полночи 1-го января 1970 года, в независимости от того установлены ваши часына локальное или всемирное время. Преобразование в локальное время производитсяв процессе запроса.

Поскольку колличество секунд с 1-го января 1970 года всемирного временисохраняется как знаковое 32-битное целое (это справедливо для Linux/Intel систем), ваши часы перестанут работать гдето в 2038 году. Linux неимеет проблеммы 2000-го года но имеет проблему 2038 года. К счачтью к тому времени все linux'ы будут запущены на 64-х разрядных системах. 64-х битное целое будит содержатьнаши часы приблизительно до 292271-миллионного года.

Обратите внимание на другие программы

  • rdate- получает текущее время на удаленной машине; может бытьиспользовано для установки системного времени.

  • xntpd- похожа на rdate, но она более аккуратнаи вы должны иметь постоянное сетево соединение. xntpdзапускается на продолжительный срок и следит за сетевыми задержками и "уходом"часов, для работы с ней используется программа (ntpdate) устанавливающая текущее время точно так же как это делает rdate.

Дальнейшая информация

  • date(1)

  • hwclock(8)

  • /usr/doc/HOWTO/mini/Clock


Ругатся сюда. В начало Создан : Friday, 31-Jul-1998 14:14:08 MSD
Изменен : Thursday, 27-Aug-1998 17:17:00 MSD


With any suggestions or questions please feel free to contact us