Что такое linux часу

Что такое linux часу

В этом документе описано, как вы можете установить ваши часы в Линуксе, как установить временную зону (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 . Для этого даем команду:

Читайте также:  Http proxy server linux

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 ) показывает верное время, но остальные — нет, то вы наверно неправильно установили информацию о временной зоне. Чтобы исправить ситуацию, просто создайте правильную ссылку на нужную временную зону.

Читайте также:  Linux wifi драйвер от windows

Итог

  • /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.

Источник

Оцените статью
Adblock
detector