Linux посмотреть текущее время

Команда date в Linux

Главное свойство утилит GNU/Linux — делать что-то одно, но эффективно. Яркий пример — команда date Linux, работающая с датой и временем. С её помощью можно извлекать любую дату в разнообразном формате, в том числе и рассчитывать прошлое и будущее время. Привилегированные пользователи могут перезаписывать системное время, используя её.

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

Синтаксис команды date

Программа может выполнятся от имени обычного пользователя. Стандартный синтаксис команды (квадратные скобки обозначают необязательное наличие):

date [ ОПЦИИ ] . [ +ФОРМАТ ]

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

Опция Длинный вариант Значение
-d STRING —date=STRING Вывод даты по указанной строке (например ‘yesterday’, ‘tomorrow’, ‘last monday’).
-I —iso-8601[=FMT] Вывод даты в формате ISO 8601. FMT по умолчанию содержит ‘date’. Также может содержать ‘hourse’, ‘minutes’, ‘seconds’, ‘ns’ для отображения соответствующих значений и часовой пояс относительно UTC рядом с датой.
—rfc-3339=FMT Вывод даты в формате RFC 3339. FMT по умолчанию содержит ‘date’. Также может содержать ‘seconds’ и ‘ns’ для отображения секунд или наносекунд.
-r FILE —reference=FILE Вывод даты последней модификации указанного файла в формате по умолчанию.
-u —utc Вывод UTC-даты

Аргумент ФОРМАТ отвечает за форматирование вывода даты. Для его указания необходимо поставить знак «+» и написать нужную маску. Наиболее популярные форматы:

Формат Значение
%% Знак процента
%a День недели текущей локали в короткой форме («Чтв»)
%A День недели текущей локали в длинной форме («Четверг»)
%b Месяц года текущей локали в короткой форме в родительном падеже («янв»)
%B Месяц года текущей локали в длинной форме в родительном падеже («января»)
%c Дата и время текущей локали без указания часового пояса
Первые две цифры текущего года
%d Числовой день месяца с ведущим нулём
%D Дата в формате %m/%d/%y
%e День месяца; аналог %_d
%F Дата в формате %Y-%m-%d
%h Аналог %b
%H Часы (00..23)
%I Часы (01..12)
%j День года (001..366)
%m Месяц (01..12)
%M Минуты (00..59)
%n Новая строка
%q Квартал года
%S Секунды (00..59)
%t Знак табуляции
%T Время в формате %H:%M:%S
%u Числовой день недели; 1 — понедельник
%x Дата в локальном формате
%X Время в локальном формате
%Z Аббревиатура временной зоны
Читайте также:  Linux ubuntu драйвера wifi

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

Введем команду без параметров.

Будет отображена текущая дата и время в соответствии с настройками локали системы.

Команда date

Команда date без параметров по умолчанию применяет маску %a %b %d %X %Z. Поскольку все форматы должны быть переданы как один параметр (из-за принципа обработки данных командным интерпретатором Bash), пробелы между ними необходимо экранировать обратным слэшем (\) или взять в кавычки.

Особое внимание следует уделить параметру -d (—date). Его функциональность не слишком очевидна, но при этом наиболее обширна.

Пример 1. Вычисление даты по числу секунд, прошедших с 1 января 1970 года.

Вычисление даты по количеству секунд

Пример 2. Вычисление даты и времени следующего понедельника при указании часового пояса Нью-Йорка в 03:00.

date —date=’TZ=»America/New_York» 03:00 next mon’

Вычисление даты с указанием временной зоны

Обратите внимание: указывать название дня недели или месяца можно в любом регистре, в короткой или длинной форме. Параметры next и last обозначают следующий и прошедший, соответственно, ближайшие дни недели.

Пример 3. Если текущий день месяца — последний, сформировать отчет о занятости дискового пространства корневого и домашнего каталога в файл report.

#!/bin/bash
if [[ $(date —date=’next day’ +%d) = ’01’ ]]; then
df -h / /home > report

Такой скрипт можно использовать для автоматизации работы с помощью демона crontab или anacron.

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

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

Изображение баннера

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

Читайте также:  Linux cups printing package

В этой статье вы узнаете как настраивать дату и время вручную. И, что более важно — как синхронизировать их с ntp сервером.

Узнать текущее системное время

Узнать текущее системное время можно командой date

Узнать текущее время BIOS

Узнать текущее системное время BIOS можно командой hwclock

date и hwclock могут показывать совершенно разное время

Исправить текущее время

Сначала нужно задать время командой date

Также можно вводить «date MMDDhhmmCCYY» без секунд, тогда секунды выставляются на ноль.

После выполнения date нужно внести новое установленное время в BIOS:

Теперь осталось только проверить сохранились ли изменения

Синхронизация с ntp

Проверьте установлен ли ntp командой

Если ntp не установлен выполните

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

systemctl list-unit-files | grep ntpd.s

Если ntpd неактивен (disabled) выполните

systemctl start ntpd
systemctl enable ntpd

Проверить добавлен ли сервис ntp в зону public в firewall можно командой

sudo firewall-cmd —get-services | grep ntp

Если ещё не добавлен, то чтобы разрешить UDP траффик от ntp выполните

firewall-cmd —permanent —add-service=ntp
firewall-cmd —reload

Отредактируйте файл ntp.conf с настройками сервера

Найдите свою временную зону на сайте www.ntppool.org

Я нашёл зону Helsinki и добавляю строки

server 0.fi.pool.ntp.org server 1.fi.pool.ntp.org server 2.fi.pool.ntp.org server 3.fi.pool.ntp.org

Теперь нужно перезапустить ntpd

Проверить откуда берётся время можно командой

remote refid st t when poll reach delay offset jitter ============================================================================== time.cloudflare 10.79.8.177 3 u 14 64 7 3.987 -0.366 0.016 37.228.129.2 193.66.253.94 2 u 16 64 7 5.301 -1.639 1.908 ivanova.ganneff 237.17.204.95 2 u 13 64 7 5.296 3.850 0.266 ntp23.kashra-se 192.168.100.15 2 u 12 64 5 32.935 -2.213 0.192

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

Заставить систему синхронизовать время с ntp

Вместо 0.fi.pool.ntp.org поставьте нужный вам сервер

Источник

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

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

В данной статье мы расскажем про то, как узнать текущее время Linux. Заодно упомянем тему часовых поясов и синхронизацию с серверами времени.

Читайте также:  Linux which login manager

Текущее время Linux

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

С помощью date

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

uaAAAAAASUVORK5CYII=

Сначала выводится дата (день-число-месяц-год), время в 12-часовом формате с пометками AM (до полудня) и PM (после полудня) и часовой пояс. Информацию можно вывести в мировом UTC-формате:

x8N4kMRa+TLRAAAAABJRU5ErkJggg==

Форматирование задается после знака +. Первый символ после знака % интерпретируется как один из модификаторов. А остальные символы выводятся как обычный текст. Этим можно пользоваться:

date +’Какой сегодня день? Сегодня %e число %m месяца %Y года’

nbsLHabCNnAAAAABJRU5ErkJggg==

Еще один пример – вывод даты в кратком виде и времени в 24-часовом формате:

wGHL7wpE+TiSwAAAABJRU5ErkJggg==

Ну и не совсем стандартный вариант – вывести, какой это по счету день в году, и сам год:

date +’Сегодня %j день %Y года’

B+rYAMWWlZz3AAAAABJRU5ErkJggg= https://losst.pro/komanda-date-v-linux

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

2. С помощью hwclock

Вообще утилита hwclock используется для настройки даты и времени в системе Linux. Но еще она подходит для простого вывода этой информации. Запускать ее следует с правами супер-пользователя:

h3hn3UB4SXe3PonEtcdY6y3RdZ2QxB3AVKOcMmLWCXqZ+s3OUUUfWocSLuaLnhBlnFv8YwQQtUfrD7puWY5nT09SfMAoX0eHwDNgqCVdP8tHinPWYfRedu5Irju21O9enI5G9YNLrNLTfLseeuZPP8vqJhwphxhhyYAAAAASUVORK5CYII=

Обратите внимание на формат вывода времени. Он включает в себя еще и миллисекунды. И через дефис указывается часовой пояс. По умолчанию это UTC. Ну а для вывода локального времени нужно добавить к команде опцию —localtime:

3. С помощью timedatectl

Еще один вариант просмотра текущего времени – использование утилиты timedatectl. Достаточно ввести команду в терминале:

f8PcnL6bLKipZMAAAAASUVORK5CYII=

Помимо даты и времени, здесь есть следующие интересующие нас поля:

  • Time zone – часовой пояс.
  • System clock synchronized – синхронизация часов с сервером.
  • NTP service – подключение к серверу точного времени.

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

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