- Настройка даты и времени в Linux – команда date
- Синтаксис и основные опции
- Форматы ввода/вывода даты и времени
- Заключение
- Устанавливаем в системе Linux время, дату и часовой пояс из командной строки или из Gnome | Используем ntp
- Управление временем в linux
- Материал из Пингвиньи радостей
- Содержание
- Системное время
- Аппаратные часы
- Развёртывание сервера точного времени
- Настройка часовых поясов и «летнего времени»
- Синхронизация времени в локальной сети
- Синхронизация системного времени и аппаратных часов
- Linux файл настройки времени
- Установка временной зоны (timezone)
- Установка всемирного или локального времени
- Установка системных часов
- Установка аппаратных часов
- В некоторых приложениях время показывается неверно
- Небольшое замечание
- Обратите внимание на другие программы
Настройка даты и времени в Linux – команда date
Как это часто бывает, всё самое важное скрывается за самыми простыми вещами. Так и в случае с установкой/настройкой даты и времени в системе. Некорректные значения этих параметров запросто ломают логику работы многих приложений, особенно это касается тех систем, где на этом построены целые сервисы, такие как интернет-магазины, SCADA-системы на производстве и т. д. Поэтому так важно следить за корректными настройками времени, даты, языковых форматов, а также уметь все эти параметры настраивать. В системах Linux всё это позволяет выполнять команда date.
Синтаксис и основные опции
Согласно официальной информации, доступной из справочного руководства (команда man date), синтаксис команды date следующий:
Если дать команду date без аргументов или если аргументы начинаются с символа «+», то по-умолчанию будет выведено текущие значения даты и времени. В ином случае производится установка даты и времени, передаваемые в аргументах в каком-либо из форматов. Например, для установки времени введите команду
MM — Месяц
DD — День,
hh — часы в 24-часовом формате,
mm — минуты,
YYYY — 4 цифры года,
ss — секунды.
Прежде чем установить время проверьте правильность установки временной зоны.
Ниже мы боле подробно рассмотрим параметры ввода даты и времени.
Следующая команда выводит информацию о текущих дате и времени в форматированном виде:
Как видно, символ «+» позволяет печатать установленные (текущие) значения, а следующее за ним выражение задаёт формат вывода этих значений. Шаблон подстановки «%n» здесь служит для переноса строки. Все остальные шаблоны подстановки используются для выборки соответствующих компонент времени: месяцы, дни, часы, минуты и т. д. Само же выражение должно заключаться в кавычках, если в нём присутствуют пробельные символы.
Параметры CC, YY и .ss в синтаксисе date означают две последние цифры года, век и секунды (от 0 до 59) соответственно. И эти параметры не являются обязательными. Для того, чтобы устанавливать дату и время с помощью команды date, необходимы права суперпользователя.
В следующей таблице приводится описание основных опций команды date:
Опция | Значение |
-d, —date=STRING | Вычисляет день недели для заданной даты в качестве STRING. Дата задаётся в формате ггммдд. |
-f, —file=DATEFILE | То же самое, что и -d, но для исходных данных используется содержимое из файла FILE. |
-r, —reference=FILE | Определяет время последней модификации файла FILE. |
-s, —set=STRING | Устанавливает время/дату, заданные строкой STRING. |
-u, —utc, —universal | Использование формата |
Форматы ввода/вывода даты и времени
Для формата ввода даты/времени предусматриваются специальные элементы записи того или иного компонента даты/времени. В следующей таблице приводится описание этих элементов записи в виде пар букв, которым соответствуют составляющие даты и времени:
Элемент | Описание |
mm | Минуты — от 0 до 59. |
hh | Часы — от 0 до 23. |
DD | Дни — от 0 до 28, 29, 30 и 31. |
MM | Месяцы — от 01 до 12. |
Как уже можно было видеть, возвращаемые командой данные из её вывода можно форматировать произвольным способом, используя для этого специальные шаблоны подстановки или параметры форматирования. Они служат, как уже было отмечено выше, для выборки требуемых компонентов данных даты/времени из вывода команды date. Список этих параметров довольно длинный, но при этом его легко запомнить, поскольку наименования параметров довольно логичны. Следующая таблица отражает самые основные и часто используемые параметры форматирования:
Узнать время последнего изменения какого-либо файла:
Узнать день недели по его дате:
Вообще, команду date очень активно используют программисты для написания программного кода приложений, работающих с датой/временем, а также при написании скриптов для автоматизации некоторых процессов. Например, для автоматического наименования фалов, в имени которых содержится подстрока с датой его создания:
В результате будет создана копия файла settings.php под именем settings.php_back-070319. В данном случае используется директива $( ) для задания имени файла. Нужно заметить, что данный приём — очень мощный инструмент при работе в командной оболочке Linux.
Заключение
В заключение следует отметить отличную гибкость и большие возможности простой консольной утилиты, доступной по команде date, которая на первый взгляд не представляется заслуживающей внимания. Однако, команда date – это яркий пример «маленькой, но очень эффективной программы» в UNIX-подобных системах.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Устанавливаем в системе Linux время, дату и часовой пояс из командной строки или из Gnome | Используем ntp
В системе Linux очень важно иметь правильное время и дату, поскольку от этого зависит многое. Причем неважно, используете ли вы систему Linux на своем персональном компьютере или у вас Linux-сервер. Серверные и системные часы должны указывать правильное время.
Аппаратные часы — это те часы, которые работают на вашем компьютере даже тогда, как питание компьютера отключено. Это возможно благодаря наличию в современных компьютерах литиевой батареи или батареи другого типа в более старых компьютерах.
Мы можем увидеть различие между аппаратными и системными часами
Вы увидите что-то вроде следующего:
Теперь проверьте системные часы
Вы увидите что-то вроде следующего:
Давайте установим аппаратные часы по местному времени:
Если вы хотите установить их на использование времени по Гринвичу (UTC):
Установка часового пояса
Чтобы в ваших системных часах установить часовой пояс, выполните следующее:
Правильно укажите ваш часовой пояс.
Автоматическая регулировка часов
Для того, чтобы ваша система могла автоматический регулировать время, вам нужно установить программу ntp . Получите ее из репозитария. После того, как она будет установлена, вы можете настроить ее следующим образом:
Отредактируйте файл /etc/ntpd.conf . Он будет выглядеть следующим образом:
Удостоверьтесь, что вы запустили демон, и сделайте так, чтобы он автоматически запускался при загрузке системы.
Для Arch Linux это: /etc/rc.d/ntpd start ; для Debian и производных систем: /etc/init.d/ntpd start
Обновление из командной строки времени по значению, получаемому с сервера времени
Вы можете обновлять время вручную без использования демона ntpdate
Вы получите что-то вроде следующего:
Бонус: Установка времени и даты в Gnome
Если вы используете Gnome, щелкните правой кнопкой мыши по изображению часов и выберите пункт настройки adjust, или в меню выберите пункт System > Administration > Time and Date (Система > Администрирование > Время и дата). Вам, возможно, будет предложено ввести пароль.
Источник
Управление временем в linux
Материал из Пингвиньи радостей
Содержание
Статья об управлении временем в linux
Управление временем в linux это комплекс мероприятий по настройке серверов и рабочих станций локальной сети для установки и поддержания точного времени.
Полный план мероприятий по управлению временем включает в себя
Описание управления временем в linux приведено на примере операционной системы Debian GNU/Linux.
Системное время
Системным временем называется дата и время используемые Операционной средой.
Системное время первоначально устанавливается на основании значений аппаратных часов и часового пояса и действует до первой синхронизации с сервером точного времени. Установка системного времени операционной среды запускает процесс синхронизации часов в локальной сети.
Аппаратные часы
Аппаратным временем называется дата и время используемое компьютером, когда он выключен.
Аппаратные часы устанавливаются и хранятся в БИОС компьютера.
В некоторых случаях хранение времени в аппаратных часах в формате UTC может предоставлять определённые неудобства. Например при установке времени BIOS/CMOS вручную (в соответствии с наручными часами) придётся самостоятельно учитывать разницу в часовых поясах. Или например при совместном использовании на одном компьютере операционных систем Windows и linux.
Для изменения в Linux стандарта хранения времени в аппаратных часах
- отказ от хранения времени в аппаратных часах в формате UTC
- применение нового стандарта хранения аппаратного времени
Развёртывание сервера точного времени
Сервер точного времени локальной сети это рабочая станция, на которой работает Сервер времени, обеспечивающий связь с Сервером точного времени в интернет для периодичного обновления системного времени.
В качестве Сервера точного времени может быть использована например программа Chrony.
Настройка часовых поясов и «летнего времени»
Часовой пояс это геофизическое деление земного шара на части по 15 градусов каждая, начиная с Гринвича, в Англии.
Настройка часового пояса необходима, если аппаратные часы хранят время в формате UTC, как это принято по умолчанию в linux и в месте установки рабочей станции осуществляется переход на «летнее/зимнее время».
Для установки часового пояса могут быть использованы команды
Синхронизация времени в локальной сети
Синхронизация времени в локальной сети это процесс связи рабочей станции с помощью NTP-клиента с сервером точного времени в локальной сети для синхронизация с ним своего системного времени.
Для синхронизации времени могут быть использованы например утилита ntpdate или сервер времени ntp, работающий в режиме клиента.
Для синхронизации системного времени с помощью ntpdate
- для «непрерывной» синхронизации с помощью cron, в например /etc/crontab добавляется строка
- для разовой синхронизации
Синхронизация системного времени и аппаратных часов
Синхронизация системного времени и аппаратных часов это процесс установки аппаратных часов рабочей станции в соответствии с системным временем.
Такая синхронизация требуется например при настройке автовключения рабочих станций по времени, например при использовании компьютера в качестве будильника или при одновременном (поочерёдном) использовании на рабочей станции операционных сред Linux и windows.
Для установки аппаратных часов используется утилита hwclock:
Источник
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 . Для этого даем команду:
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.
Источник