Как узнать время linux

Настройка даты и времени в Linux – команда date

Как это часто бывает, всё самое важное скрывается за самыми простыми вещами. Так и в случае с установкой/настройкой даты и времени в системе. Некорректные значения этих параметров запросто ломают логику работы многих приложений, особенно это касается тех систем, где на этом построены целые сервисы, такие как интернет-магазины, SCADA-системы на производстве и т. д. Поэтому так важно следить за корректными настройками времени, даты, языковых форматов, а также уметь все эти параметры настраивать. В системах Linux всё это позволяет выполнять команда date.

Синтаксис и основные опции

Согласно официальной информации, доступной из справочного руководства (команда man date), синтаксис команды date следующий:

Если дать команду date без аргументов или если аргументы начинаются с символа «+», то по-умолчанию будет выведено текущие значения даты и времени. В ином случае производится установка даты и времени, передаваемые в аргументах в каком-либо из форматов. Например, для установки времени введите команду

MM — Месяц
DD — День,
hh — часы в 24-часовом формате,
mm — минуты,
YYYY — 4 цифры года,
ss — секунды.

Прежде чем установить время проверьте правильность установки временной зоны.

Ниже мы боле подробно рассмотрим параметры ввода даты и времени.

Следующая команда выводит информацию о текущих дате и времени в форматированном виде:

Как видно, символ «+» позволяет печатать установленные (текущие) значения, а следующее за ним выражение задаёт формат вывода этих значений. Шаблон подстановки «%n» здесь служит для переноса строки. Все остальные шаблоны подстановки используются для выборки соответствующих компонент времени: месяцы, дни, часы, минуты и т. д. Само же выражение должно заключаться в кавычках, если в нём присутствуют пробельные символы.

В следующей таблице приводится описание основных опций команды date:

Форматы ввода/вывода даты и времени

Для формата ввода даты/времени предусматриваются специальные элементы записи того или иного компонента даты/времени. В следующей таблице приводится описание этих элементов записи в виде пар букв, которым соответствуют составляющие даты и времени:

ЭлементОписание
mmМинуты — от 0 до 59.
hhЧасы — от 0 до 23.
DDДни — от 0 до 28, 29, 30 и 31.
MMМесяцы — от 01 до 12.

Как уже можно было видеть, возвращаемые командой данные из её вывода можно форматировать произвольным способом, используя для этого специальные шаблоны подстановки или параметры форматирования. Они служат, как уже было отмечено выше, для выборки требуемых компонентов данных даты/времени из вывода команды date. Список этих параметров довольно длинный, но при этом его легко запомнить, поскольку наименования параметров довольно логичны. Следующая таблица отражает самые основные и часто используемые параметры форматирования:

Узнать время последнего изменения какого-либо файла:

Узнать день недели по его дате:

Вообще, команду date очень активно используют программисты для написания программного кода приложений, работающих с датой/временем, а также при написании скриптов для автоматизации некоторых процессов. Например, для автоматического наименования фалов, в имени которых содержится подстрока с датой его создания:

Заключение

В заключение следует отметить отличную гибкость и большие возможности простой консольной утилиты, доступной по команде date, которая на первый взгляд не представляется заслуживающей внимания. Однако, команда date – это яркий пример «маленькой, но очень эффективной программы» в UNIX-подобных системах.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Как узнать время linux

Команда date позволяет задействовать одноименную утилиту, которая используется для двух целей. Обычно она используется для получения текущих даты и времени при необходимости в заданном формате, но при этом она также позволяет устанавливать их.

Стандартный синтаксис команды выглядит следующим образом:

$ date [описание времени или формата вывода]

Формат ввода даты и времени

Для начала рассмотрим вопрос установки текущих даты и времени, так как данное действие выполняется достаточно просто (единственная сложность связана с запоминанием формата даты и времени). Вы можете самостоятельно выполнить команду man date для того, чтобы уточнить формат даты и времени, используемый в вашей системе. В большинстве случаев он является следующим:

Но все не так сложно, как кажется на первый взгляд. Параметры в квадратных скобках являются необязательными — вы можете как использовать их, так и отказаться от их использования. Каждая пара букв соответствует элементу записи даты или времени:

Элемент записиНазначение
MMМесяц (от 01 до 12)
DDДень (от 01 до 28, 29, 30 или 31 в зависимости от месяца)
hhЧасы (от 00 до 24)
mmМинуты (от 00 до 59)
YYДве последние цифры года (от 00 до 99, не обязательно)
CCВек (от 00 до 99, используется вместе с предыдущим элементом, не обязательно)
.ssСекунды (от 00 до 59 с символом точки, не обязательно)

Как утилита вычисляет век? В UNIX-подобных операционных системах время хранится в формате числа секунд, прошедших с 1 января 1970 года в часовом поясе GMT (также известном, как UTC). Из-за того, что с этой даты прошло достаточно много времени, а для хранения количества секунд в 32-битных системах используется 4-байтовое целочисленное значение, в 2038 году на этих системах должен произойти переход счетчика секунд через нулевое значение. Ввиду того, что подсчитывается лишь количество секунд, век попросту не принимается во внимание. Таким образом, на 32-битных системах значения года от 00 до 38 соответствуют 2000-м годам, а значения года от 70 до 99 — 1900 годам. Фактически, на 32-битных системах команда date не позволяет установить год, не входящий в приведенные выше диапазоны. В 64-битных системах все проще: для подсчета времени используется 8-байтовое целочисленное значение, поэтому имеется огромный запас по времени (292 миллиарда лет), доступен полный диапазон годов от 00 до 99, а век вычисляется обычным образом по количеству прошедших секунд.

Для установки текущих даты и времени необходимы права пользователя root, иначе вы получите аналогичное сообщение об ошибке:

date: невозможно установить дату: Операция не позволена

Формат вывода даты и времени

Команда date без параметров хороша в том случае, если вам нужно узнать текущие дату в время. Но функция вывода даты и времени в произвольном формате полезна при разработке сценариев командной оболочки. Иногда нужно использовать максимально краткую запись даты; иногда в сценарии нужно обрабатывать лишь время без даты; иногда дату и время приходится сравнивать с датой и временем из внешнего источника и это сравнение будет гораздо более простым в случае получения текущих даты и времени в том же формате, в котором передаются данные из внешнего источника.

Для форматирования текущих даты и времени в соответствии со своими предпочтениями пользователь должен передать утилите строку форматирования после символа +:

Строка форматирования состоит из параметров форматирования, приведенных в таблице ниже.

Параметр форматированияНазначениеПример вывода
%aСокращенное название дня неделиЧт
%AПолное название дня неделиЧетверг
%bСокращенное название месяцаиюн
%BПолное название месяцаИюнь
%dНомер дня недели08
%DТекущая дата в формате ММ/ДД/ГГ06/08/17
%FТекущая дата в формате ГГГГ/ММ/ДД2017-06-08
%HЧасы в 24-часовом формате в диапазоне от 00 до 2318
%lЧасы в 12-часовом формате в диапазоне от 01 до 126
%jНомер дня года в диапазоне от 001 до 366159
%mНомер месяца в диапазоне от 01 до 1206
%MМинуты в диапазоне от 00 до 5924
%SСекунды в диапазоне от 00 до 6022
%NНаносекунды в диапазоне от 000000000 до 999999999335288238
%TВремя в формате ЧЧ:ММ:СС в 24-часовом формате18:24:22
%uНомер дня недели в диапазоне от 1 до 74
%UНомер недели в году в диапазоне от 00 до 5323
%YПолный номер года2017
%ZОбозначение часового поясаMSK

Примеры использования

Получение текущих даты и времени

Для получения текущих даты и времени в стандартном формате достаточно выполнить следующую команду:

Утилита выведет аналогичную информацию:

Чт июн 8 15:12:21 MSK 2017

Для вывода даты и/или времени в пользовательском формате достаточно добавить символ + и строку форматирования. Например, для вывода даты и времени может использоваться команда:

В результате будет выведена следующая информация:

Добавление текущей даты в имена создаваемых файлов

Отличным примером использования команды date в сценариях является создание суффикса имени файла для автоматизированного создания нескольких файлов с аналогичными именами. Например, процесс создания создании резервных копий данных. Файл резервной копии данных создается с помощью утилиты tar и сохраняется на жестком диске большого, но не бесконечного объема. Локальная машина носит имя bugler, поэтому данное слово присутствует и в имени файла резервной копии. Файловая система с жесткого диска большого объема скопирована в директорию /bkup. Команда для создания резервных копий будет выглядеть следующим образом:

Она создает сжатый (благодаря параметру -z) файл архива всей файловой системы (благодаря символу / в конце команды) и сохраняет этот файл под именем /bkup/bugler.backup.Sat.tgz. В результате использования команды date при формировании имени файла, файл архива будет перезаписываться ровно через неделю, что позволит сэкономить дисковое пространство — оно будет просто повторно использоваться.

Примечание: конструкция $( ) позволяет использовать вывод дополнительной команды в качестве части основной команды. Альтернативным решением является использование обратных кавычек: . backup `date +%a`.tgz. При этом формат $( ) гораздо проще в использовании.

Установка текущих даты и времени

В том случае, если вы не будете вводить необязательные элементы записи даты и времени, утилита будет считать, что вы выбрали текущий год. Таким образом, в случае исполнения следующей команды:

системные часы будут переведены на 5 июня 2017 года (да, эта статья писалась именно в этот день). Теперь предположим, что нам нужно установить 2018 год. В этом случае команда примет следующий вид:

Использование утилиты на удаленных системах

Для сравнения дат на локальном и удаленном компьютере достаточно настроить вход в удаленную систему без пароля и выполнить команду:

Для установки локального времени на удаленном компьютере может использоваться следующая команда:

Источник

Дата и время в Терминале Linux

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

В данной статье поговорим о времени, дате и календаре в Терминале. Как всегда консоль хранит множество полезных и нужных команд для пользователя. Итак, обо всем по-порядку.

Данная команда покажет текущий часовой пояс:

Local time: Вт 2016-12-06 22:33:58 EET
Universal time: Вт 2016-12-06 20:33:58 UTC
RTC time: n/a
Time zone: Europe/Kiev (EET, +0200)

Чтобы узнать текущую дату и время выполним команду:

date
Вт дек 6 22:51:15 EET 2016

Если мы хотим узнать, какое было число, к примеру, вчера, то выполним команду:

Чтобы узнать дату ближайшей пятницы, выполним команду:

Чтобы узнать подробнее о всех настройках утилиты date выполните команду:

Далее идет очередь за консольным календарем. Выполним команду:

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Без параметров Терминал выдаст календарь на текущий месяц.

Если нужен календарь на год, то выполним команду:

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Узнаем календарь на апрель 2016 года::

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Кроме утилиты cal существует также ncal, которая покажет «вертикальный» календарик:

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Чтобы узнать дату празднования в какой-нибудь год, в команду нужно вставить нужный год:

Как видим в 2017 году празднование Пасхи совпадает и для католиков, и для православных.

Источник

Как установить, изменить время и часовой пояс (timezone) в Debian

Данная статья является частью единого цикла статьей про сервер Debian.

Цели статьи

Введение

Во время установки Debian, сервер автоматически настраивает системное время на основе информации из bios. Инсталлятор предлагает вам выбрать только часовой пояс. При этом, если вы не правильно указали часовой пояс (timezone), его без проблем можно изменить после установки.

Так же ситуация, когда необходимо изменить время или часовой пояс, может возникнуть, если вы арендуете сервер за границей и вам разворачивают систему из готового образа. В таком случае timezone может быть указана не такая, как вы хотите. Надо будет изменить.

Зачем, собственно, следить за точным временем на сервере, кроме непосредственно удобства восприятия этого времени? Причин может быть много. Перечислю основные, которые пришли в голову.

Для избежания этих и других проблем, предлагаю приступить к настройке времени, даты и часового пояса на сервере под управлением системы Debian.

Как посмотреть и узнать системное время

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Wedдень недели, в данном случае среда
21 Augчисло и месяц, 21-е августа
2019год
03:38:12время в формате часы:минуты:секунды
PMобозначение времени суток, am или pm, до или после полудня
MSKчасовой пояс, он же timezone

Как вы видите, у нас установлен часовой пояс MSK, текущая дата и время в 12-ти часовом формате. Это не очень удобно. Если вам нужно посмотреть время в 24-х часовом формате, добавьте отображение +%R к date.

Подобные параметры удобно использовать в скриптах. Вот наиболее популярные комбинации просмотра текущего времени, которые использую я.

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Установка и настройка времени в Debian

Для того, чтобы вручную установить дату, используем упомянутую выше команду date, только уже с дополнительными параметрами.

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

То же самое, только через timedatectl.

С помощью команды date так же можно посмотреть текущее время системы без учета часового пояса, то есть время по UTC.

В выводе видно время относительно нулевого меридиана, без поправок на часовой пояс. После установки корректного времени переходим к настройке часового пояса.

Установка, настройка и изменение часового пояса

Выше я рассказал, как узнать, в каком часовом поясе находятся системные часы сервера debian. В моем случае timezone установлена как MSK, то есть московский часовой пояс. Если у вас указан другой часовой пояс, а вы, к примеру, хотите установить московский, то делается это просто. Смена часового пояса выполняется через timedatectl:

Посмотреть список всех timezоne, доступных для установки на сервере, можно командой:

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Перед настройкой или изменением часового пояса, рекомендуется обновить список timezone на сервере. Они периодически меняются.

После того как обновили и настроили часовой пояс, можно приступать к синхронизации времени.

Timedatectl для настройки времени в Debian

В большинстве современных дистрибутивов с systemd служба синхронизации времени уже присутствует в дефолтной установке и реализуется через systemd-timesyncd. Эта служба призвана заменить ntpd. Со слов разработчиков, она легче и быстрее, чем ntpd, плюс интегрирована в systemd, поэтому для автоматической синхронизации времени рекомендуется использовать именно ее.

Тут важно понимать, что systemd-timesyncd не может работать в качестве сервера времени, который мы настроим ниже. Так что, если у вас одиночный сервер, вам вполне подойдет timesyncd. Если же вы хотите использовать свой сервер времени, то надо настраивать ntp.

Для начала, давайте проверим, что у нас настроено в качестве службы обновления времени.

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Синхронизация времени уже включена и работает через timesyncd. Посмотрим ее статус.

В принципе, больше ничего делать не нужно. Синхронизация времени через интернет уже настроена и работает. Время обновляется с сервера 2.debian.pool.ntp.org. Для надежности, можно убедиться, что служба работает, плюс, добавим ее сразу в автозагрузку, если ее там нет.

Список серверов для синхронизации времени в timedatectl настраивается в конфигурационном файле /etc/systemd/timesyncd.conf.

Синхронизация времени с помощью ntp и ntpdate

Если вам по какой-то причине не подходит описанная выше синхронизация, либо вам нужен свой сервер времени в сети, то timesyncd можно выключить.

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Покажу теперь простую утилиту ntpdate, с помощью которой можно разово синхронизировать время, не автоматически. Для начала ее нужно установить в систему.

Дальше запускаем для разовой синхронизации.

Если у вас ntpdate выдает ошибку — the NTP socket is in use, exiting, значит у вас уже установлена и запущена служба ntp, которая заняла udp порт 123, необходимый для работы ntpdate. Установкой и настройкой этой службы мы и займемся далее. Также, если ntpdate не работает, посмотрите материал, может это ваш случай.

Для обновления времени сервера можно воспользоваться службой ntp. Ее так же надо установить отдельно.

Это старая проверенная служба времени, которую использовали еще задолго до появления systemd и его юнитов. Запустим ее и добавим в автозагрузку.

После запуска она сразу же автоматически синхронизирует время. Проверим статус службы ntp в Debian.

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Синхронизация времени через ntp заработала сразу же. Дополнительная настройка не нужна, если вас не интересует свой сервер времени, который мы настроим ниже.

При этом, для проверки статуса службы времени ntp можно использовать утилиту ntpq. Посмотрим статус синхронизации.

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Поясню значения каждого столбца.

Настройка сервера ntp в Debian

Теперь настроим свой сервер времени, с которого другие наши сервера смогут синхронизировать свои часы. Сервер времени ntp использует отдельный одноименный протокол — Network Time Protocol, который для работы использует UDP порт 123. Перед установкой и настройкой службы времени убедитесь, что на фаерволе открыт этот порт.

Так же я обычно отключаю ipv6 протокол, если он не используется. Для этого в файле /etc/default/ntp заменяем параметр на

После изменения конфигурации, перезапустим ntp и проверим статус службы.

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Теперь убедимся, что она запущена.

Все в порядке, служба ntp запущена и готова принимать подключения. Для примера синхронизирую время одной из windows машин с нашим сервером времени.

Как узнать время linux. Смотреть фото Как узнать время linux. Смотреть картинку Как узнать время linux. Картинка про Как узнать время linux. Фото Как узнать время linux

Теперь другие компьютеры и серверы могут синхронизировать свои часы с нашего сервера Debian, где мы настроили ntp службу в качестве источника времени для остальных.

Заключение

Кратко подведу итог опубликованного материала. Мы рассмотрели практически все, что связано со временем на сервере Debian. Причем захватили нюансы systemd, который все больше забирает на себя функционала.

Я показал как устанавливать время, изменять часовой пояс, разово синхронизировать время с помощью ntpdate и настраивать сервер времени ntpd в локальной сети.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Источник

Команда Date (Дата) в Linux с примерами использования

Команда Date в Linux используется для отображения или установки системной даты и времени. Эта команда позволяет пользователям отображать время в различных форматах и посмотреть прошлые и будущие даты.

В этой инструкции мы расскажем про команду date в Linux и покажем примеры использования.

Как использовать команду Date (дата) Linux?

Ниже приведен синтаксис команды date в терминале Linux:

По умолчанию команда date выводит дату и часовой пояс, в котором настроена система. Чтобы изменить дату и время, вам потребуется пользователь с правами root или sudo.

Отображения команды Date

Когда команда дата используется без каких-либо параметров и аргументов, то она отображает текущую дату и время в формате по умолчанию. Выглядит это следующим образом:

Выходные данные показывают день недели, день месяца, текущий месяц, год, текущее время и часовой пояс с указанием года. Так же команда « Date » отображает часовой пояс по умолчанию, установленный в вашей операционной системе.

Показать будущие даты

Чтобы отобразить в терминале завтрашнюю дату, введите следующую команду:

Отображение даты следующей пятницы:

Показ прошлых дат в Linux

Используя опцию -d, вы можете посмотреть прошлые даты в системе Linux. Команда даты позволяет вводить такие значения, как “yesterday” (вчера), «Saturday» (Суббота), «3 year ago» (3 года назад) и аналогичные. Таким образом, используя следующую параметр -date, вы можете отобразить прошлые даты:

Чтобы показать вчерашнюю дату, используйте следующую команду:

Аналогично, чтобы отобразить дату последней пятницы, выполните указанную ниже команду:

Параметры формата команды Date

Вывод терминала команды Linux date может быть изменен с использованием управляющих символов формата, которым предшествует символ «+«. Все эти элементы управления форматом начинаются со знака » % «.

Например, мы хотим отформатировать вывод команды date следующим образом:

Используя этот список символов форматирования, вы можете отображать выходные данные в желаемом формате:

Используя следующую команду, вы можете изучить полный список параметров формата команды date:

Отображение даты из строкового значения

Параметры -date или -d позволяют отображать конкретную дату. Чтобы отобразить определенную дату, укажите строку даты в удобочитаемом формате, как показано в следующей команде:

Используя опцию -d, вы также можете отобразить дату в пользовательском форматировании следующим образом:

Показать время последнего изменения файла

Иногда нам нужно просмотреть время последнего изменения файла. Команда «Date» в системе Linux помогает вам отобразить время последнего изменения файла. При использовании команды «Date«, за которой следует опция «— r«, выводится время изменения файла.

Например, чтобы отобразить дату последнего изменения файла «/etc/hosts«, используйте следующую команду:

Команда date для установки часового пояса

Команда «date» отображает часовой пояс вашей системы по умолчанию, определенный в файле «/etc/localtime«. Однако для отображения часового пояса другой страны установите переменную среды » TZ » в нужный часовой пояс.

Чтобы просмотреть все доступные списки часовых поясов, выполните следующую команду:

Например, чтобы установить часовой пояс для отображения времени от Сиднея до Австралии, выполните следующую команду:

date в качестве преобразователя эпох

Команда «date» также работает как конвертер эпох. Эпоха отображает время в количестве секунд, прошедших со 2 февраля 1975 года в 00:00:00 UTC. Чтобы отобразить время, прошедшее в секундах до текущей даты, используйте команду date вместе с элементом управления форматом %s:

Например, чтобы просмотреть, сколько секунд прошло с эпохи до определенной даты, используйте следующую команду:

Использование date с другими командами

Команда «date» в системе Linux может быть реализована вместе с другими командами для создания различных имен файлов, содержащих информацию о текущей дате и времени.

В следующем примере мы создали новый файл резервной копии SQL с помощью приведенной ниже команды:

$ mysqldump database_name > database_name-$(date +%Y%m%d).sql

Команда date также может быть использована в сценарии командной оболочки. В следующем примере мы назначили вывод команды date новой переменной » date_now’.

Установка даты в Linux

Используя команду date, вы можете вручную установить дату системы Linux.

Например, чтобы вручную установить дату и время в системе Linux на 2:30 вечера 13 октября 2021 года. Выполните приведенную ниже команду:

В большинстве дистрибутивов Linux системное время по умолчанию синхронизируется с NTP или timedatectl / timesyncd. Так что не нужно сильно беспокоиться о его изменении.

Заключение

Мы рассказали о том, как использовать команду date в системе Linux. Чтобы узнать больше о команде date, можете посмотреть справочные страницы команды date.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *