Linux операции с датой

12.3. Команды для работы с датой и временем

Время/дата и измерение интервалов времени

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

Пример 12-7. Команда date

Ключ -u дает UTC время (Universal Coordinated Time — время по Гринвичу).

Отображает время для указанной временной зоны.

Выводит подробную статистику по исполнению некоторой команды.

time ls -l / даст нечто подобное:

См. так же очень похожую команду times, обсуждавшуюся в предыдущем разделе.

Начиная с версии 2.0 Bash, команда time стала зарезервированным словом интерпретатора, с несколько измененным поведением в конвейере.

Утилита устанавливает время последнего обращения/изменения файла в текущее системное время или в заданное время, но так же может использоваться для создания нового пустого файла. Команда touch zzz создаст новый пустой файл с именем zzz, если перед этим файл zzz отсутствовал. Кроме того, такие пустые файлы могут использоваться для индикации, например, времени последнего изменения в проекте.

Эквивалентом команды touch могут служить : >> newfile или >> newfile (для обычных файлов).

Команда at — используется для запуска заданий в заданное время. В общих чертах она напоминает crond, однако, at используется для однократного запуска набора команд.

at 2pm January 15 — попросит ввести набор команд, которые необходимо запустить в указанное время. Эти команды должны быть совместимыми со сценариями командной оболочки. Ввод завершается нажатием комбинации клавиш Ctl-D.

Ключ -f или операция перенаправления ввода ( ), заставляет at прочитать список команд из файла. Этот файл должен представлять из себя обычный сценарий, на языке командной оболочки и, само собой разумеется, такой сценарий должен быть неинтерактивным. Может использоваться совместно с командой run-parts для запуска различных наборов сценариев.

Команда batch, управляющая запуском заданий, напоминает команду at, но запускает список команд только тогда, когда загруженность системы упадет ниже .8. Подобно команде at, с ключом -f, может считывать набор команд из файла.

Выводит на stdout аккуратно отформатированный календарь на текущий месяц. Может выводить календарь за определенный год.

Приостанавливает исполнение сценария на заданное количество секунд, ничего не делая. Может использоваться для синхронизации процессов, запущенных в фоне, проверяя наступление ожидаемого события так часто, как это необходимо. Например, Пример 29-6.

Команда sleep по-умолчанию принимает количество секунд, но ей можно передать и количество часов и минут и даже дней.

Для запуска команд через заданные интервалы времени лучше использовать watch .

Microsleep (здесь символ «u» должен читаться как буква греческого алфавита — «мю» , или префикс микро). Это то же самое, что и sleep, только интервал времени задается в микросекундах. Может использоваться для очень тонкой синхронизации процессов.

Эта команда является частью пакета initscripts/rc-scripts в дистрибутиве Red Hat.

Команда usleep не обеспечивает особую точность соблюдения интервалов, и поэтому она не подходит для применений, критичных ко времени.

Команда hwclock используется для получения доступа или коррекции аппаратных часов компьютера. С некоторыми ключами требует наличия привилегий root. Сенарий /etc/rc.d/rc.sysinit использует команду hwclock для установки системного времени во время загрузки.

Команда clock — это синоним команды hwclock.

Источник

Настройка даты и времени в 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.

Источник

Команда date в Linux

В этом руководстве мы рассмотрим основы команды date .

Команда date отображает или устанавливает системную дату. Чаще всего он используется для печати даты и времени в различных форматах и вычисления будущих и прошлых дат.

Использование команды date в Linux

Синтаксис команды date следующий:

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

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

Параметры форматирования даты

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

Символ %Y будет заменен годом, %m месяцем, а %d — днем месяца:

Вот еще один пример:

Ниже приведен небольшой список некоторых наиболее распространенных символов форматирования:

  • %a — сокращенное короткое название дня недели для локали (например, Mon)
  • %A — сокращенное полное название дня недели (например, понедельник).
  • %b — сокращенное краткое название месяца локали (например, январь)
  • %B — сокращенное длинное название месяца локали (например, январь)
  • %d — День месяца (например, 01)
  • %H — час (00..23)
  • %I — Час (01..12)
  • %j — День года (001..366)
  • %m — Месяц (01..12)
  • %M — Минута (00..59)
  • %S — Секунда (00..60)
  • %u — День недели (1..7)
  • %Y — полный год (например, 2019)

Чтобы получить полный список всех параметров форматирования, запустите в терминале date —help или man date .

Строка даты

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

Используя произвольное форматирование:

Строка даты принимает такие значения, как «завтра», «пятница», «последняя пятница», «следующая пятница», «следующий месяц», «следующая неделя» и т. Д.

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

Отменить часовой пояс

Команда date возвращает дату в часовом поясе системы по умолчанию. Чтобы использовать другой часовой пояс, установите переменную среды TZ на нужный часовой пояс.

Например, чтобы показать время Мельбурна, австралийское время, введите:

Чтобы /usr/share/zoneinfo список всех доступных часовых поясов , вы можете либо перечислить файлы в каталоге /usr/share/zoneinfo либо использовать команду timedatectl list-timezones .

Конвертер эпохи

Команду date можно использовать как конвертер эпохи. Эпоха или временные метки Unix — это количество секунд, прошедших с 1 января 1970 года в 00:00:00 UTC.

Чтобы напечатать количество секунд от эпохи до текущего дня, вызовите date с помощью элемента управления форматом %s :

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

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

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

Приведенная ниже команда создаст файл резервной копии Mysql в следующем формате database_name-20190601.sql

Вы также можете использовать команду date в сценариях оболочки. В приведенном ниже примере мы назначаем вывод date переменной date_now :

Отображение времени последнего изменения файла

Команда date с параметром -r показывает время последней модификации файла. Например:

Если вы хотите изменить временную метку файла, используйте touch команду .

Установите системное время и дату

Установка системного времени и даты вручную с помощью команды date не рекомендуется, поскольку в большинстве дистрибутивов Linux системные часы синхронизируются с помощью служб ntp или systemd-timesyncd .

Однако, если вы хотите установить системные часы вручную, вы можете использовать параметр —set= . Например, если вы хотите установить дату и время на 17:30 1 июня 2019 г., введите:

Выводы

Команда Linux date отображает или устанавливает системные дату и время.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Команда Date в Linux с примерами

Linux Date Command with Examples

В этом руководстве мы рассмотрим основы date команды.

Команда date отображает или устанавливает системную дату. Чаще всего он используется для печати даты и времени в разных форматах и ​​для расчета будущих и прошлых дат.

Использование Date

Синтаксис date команды следующий:

Выходные данные включают день недели, месяц, день месяца, время, часовой пояс и год:

Параметры форматирования даты

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

Символ %Y будет заменен на год, %m месяц и %d день месяца:

Вот еще один пример:

Ниже приведен небольшой список некоторых наиболее распространенных символов форматирования:

  • %a — Сокращенное название дня недели (например, понедельник)
  • %A — Сокращенное полное название дня недели (например, понедельник)
  • %b — Сокращенное название месяца (например, январь).
  • %B — сокращенное длинное название месяца (например, январь)
  • %d — день месяца (например, 01)
  • %H — час (00..23)
  • %I — час (01.12.12)
  • %j — День года (001..366)
  • %m — Месяц (01.12.12)
  • %M — Минута (00..59)
  • %S — Второй (00 .. 60)
  • %u — день недели (1..7)
  • %Y — Полный год (например, 2019)

Чтобы получить полный список всех параметров форматирования, запустите date —help или man date в своем терминале.

Пользовательское форматирование даты

-d Опция позволяет работать на дату конкретного. Вы можете указать дату в виде удобочитаемой строки даты, как показано ниже:

Использование пользовательского форматирования:

Строка даты принимает значения, такие как «завтра», «пятница», «последняя пятница», «следующая пятница», «следующий месяц», «следующая неделя» .. и т. Д.

Вы также можете использовать параметр строки даты, чтобы показать местное время для разных часовых поясов. Например, чтобы показать местное время 6:30 утра следующего понедельника на восточном побережье Австралии, введите:

Переопределить часовой пояс

Команда date возвращает дату в системном часовом поясе по умолчанию . Чтобы использовать другой часовой пояс, установите переменную среды TZ в желаемый часовой пояс.

Например, чтобы показать время в Мельбурне, введите:

Чтобы получить список всех доступных часовых поясов , вы можете либо перечислить файлы в /usr/share/zoneinfo каталоге, либо использовать timedatectl list-timezones команду.

Конвертер эпох

date Команда может быть использована в качестве преобразователя Epoch. Время, или метки времени Unix, — это количество секунд, прошедших с 1 января 1970 года в 00:00:00 UTC.

Чтобы напечатать количество секунд от эпохи до текущего дня, вызовите date с %s контролем формата:

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

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

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

Команда ниже создаст файл резервной копии Mysql в следующем формате database_name-20190601.sql

Вы также можете использовать date команду в своих сценариях оболочки. В приведенном ниже примере мы присваиваем выход date к date_now переменной:

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

Команда date с -r параметром показывает время последнего изменения файла. Например:

Если вы хотите изменить временную метку файла, используйте touch команду .

Установите системное время и дату

Установка системного времени и даты вручную с помощью этой date команды не рекомендуется, поскольку в большинстве дистрибутивов Linux системные часы синхронизируются с ntp помощью systemd-timesyncd служб или .

Однако, если вы хотите установить системные часы вручную, вы можете использовать эту —set= опцию. Например, если вы хотите установить дату и время 17:30, 01 июня 2019 г., введите:

Вывод

Команда Linux date отображает или устанавливает системную дату и время.

Источник

Читайте также:  Отключить автоматическую перезагрузку windows 10 при установке обновлений
Оцените статью