Linux: установить дату через командную строку

Как изменить системную дату в Linux?

Я хочу изменить:

  • Только год
  • Только месяц
  • Только дата
  • Любая комбинация из трех вышеупомянутых

Используйте date -s :

  date -s '2014-12-25 12:34:56'  

Запустите это как root или под sudo . Изменение только одного года/месяца/дня является более сложной задачей и потребует повторения битов текущей даты. Есть также инструменты с графическим интерфейсом пользователя, встроенные в основные среды рабочего стола, обычно доступные через часы.

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

  date -s "2014-12-25 $ (date +% H:% M:% S)"  

изменит дату, но соблюдайте время. См. man date для подробностей форматирования для создания других комбинаций: отдельные компоненты: % Y , % m , % d , % H , % M и % S .


Системное время

Вы можете использовать date , чтобы установить системную дату. Реализация date в GNU (которая встречается в большинстве невстроенных систем на базе Linux) принимает множество различных форматов для установки времени, вот несколько примеров:

установить только год:

  date -s 'next year'date -s' last year ' 

установить только месяц :

  date -s 'last month'date -s' next month ' 

установить только день:

  date -s 'next day'date -s'orrow'date -s' last day'date -s'terday'date -s 'пятница'  

установить все вместе:

  date -s '2009-02-13 11:31:30' # это волшебная метка времени  

Аппаратное время

Теперь системное время установлено, но вы можете синхронизировать его с аппаратными часами:

Используйте - show для печати аппаратного времени:

  hwclock --show  

Вы можете установить аппаратные часы на текущее системное время:

  hwclock --systohc  

Или системное время на оборудование c блокировка

  hwclock --hctosys  

1


Команда для изменения системной даты — это date .

Есть два способа вызвать команду date (в Linux):

  date [OPTION] ... [+ FORMAT] date [-  u | --utc | --universal] [MMDDhhmm [[CC] YY] [. ss]]  

Самый простой способ — использовать date -s , поскольку он позволяет использовать simple относительные даты

  $ date -s вчера;  дата дата: невозможно установить дату: операция запрещена Сб, 5 января 07:21:07 EST 2019 Вс, 6 января 07:21:07 EST 2019  

Дата не изменилась, потому что она был выполнен с ограниченным пользователем $ . Если вы действительно хотите изменить дату, используйте root ( # ) или sudo:

  $ sudo date -s вчера;  date Сб, 5 января 07:21:07 EST 2019 Сб, 5 января 07:21:07 EST 2019  

Итак, изменение любой части относительной date так же просто, как и назвать его:

  $ date -s "5 лет назад" понедельник, 6 января 08:26:26 EST 2014 $ date -s "+6 месяцев  "Сб, 6 июля, 08:28:39 EDT 2019 $ date -s" +3 часа -13 минут "Вс, 6 января, 11:16:59 AST 2019  

Абсолютные даты — это немного сложнее, так как им нужно больше деталей:

  $ date -s "2001-07-23 10:11:12"  

Или вы можете использовать команду date дважды:

  $ date -s "$ (date + '% Y-% m-% d% H:% M:  % S ') " 

замените любой из % допустимым значением, и дата будет установлена ​​(только как корень).

  $ date -s "$ (date + '% Y-11-% d% H:% M:% S')" среда, 6 ноября, 08:37:15 EST 2019   

Вторая форма вызова даты используется для прямого изменения системной даты.

   дата [-u | --utc | --universal] [MMDDhhmm [[CC] YY] [. ss]]  

Итак:

date 11230812 # MMDDhhmm

Устанавливает дату на 23 ноября в 08h и 12min.

BSD имеет аналогичная команда, но в другом формате ([[[[cc] yy] mm] dd] HH] MM [.ss]).

Попробуйте date как пользователь с ограничениями, чтобы увидеть, что он будет делать (ничего не меняя):

  $ date 11230812 date: невозможно установить дату: операция не разрешена Сб 23 ноября 08:12:00 EST  2019  

Или, если вы действительно хотите изменить дату, как root:

  # date 11230812 # date Сб, 23 ноября  08:12:00 EST 2019  

Обратите внимание, что это затронет такие службы, как NTP или chrony. А при перезапуске дата вернется к реальной.

Добавьте YY, чтобы установить год:

  $ date 1123081222 date:  невозможно установить дату: операция не разрешена среда, 23 ноября, 08:12:00 EST 2022  

Или CCYY для установки года и века:

  $ date 112308121982 date: невозможно установить дату: операция не разрешена вторник, 23 ноября, 08:12:00 EST 1982  


Вы меняете дату с помощью date команда. Однако команда ожидает в качестве аргумента полную дату:

  # date -s "20141022 09:45" среда, 22 октября, 09:45:00 BST 2014   

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

  # date -s "$ (date + '% Y12% d  % H:% M ') "Mon Dec 22 10:55:03 GMT 2014  

изменяет месяц на 12-й месяц — декабрь.

Форматы даты:

  • % Y — Год
  • % m — Месяц
  • % d — День
  • % H — Час
  • % M — Минута

1


Для таких, как я, использующих ESXI 5.1, вот что мне ответила система

  ~  # date -s "2016-03-23 ​​09:56:00" date: invalid date '2016-03-23 ​​09:56:00'  

Мне пришлось использовать вместо этого используйте конкретную команду ESX:

  esxcli system time set -y 2016 -M 03 -d 23 -H 10 -m 05 -s 00  

1


Я использовал команду даты и формат времени, перечисленные ниже, чтобы успешно установить дату из команда оболочки терминала выполняется на Android Things, использующем ядро ​​Linux.

date 092615002017.00

MMDDHHMMYYYY.SS

MM — Месяц — 09

ДД — День — 26

ЧЧ — Час — 15

ММ — Мин — 00

ГГГГ — Год — 2017

.SS — второй — 00

1



Команда даты в Linux

Обновлено

4 мин чтения

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

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

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

  дата [ВАРИАНТ] ... [+ FORMAT]  

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

  date  

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

  Сб, 1 июня, 14:31:01 CEST 2019  

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

  date + "Год:% Y, Месяц:% m  , День:% d " 

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

  Год: 2019, Месяц: 06, День: 02   

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

  date "+ DATE:% D% nTIME:% T"  
  ДАТА: 02.06.19 ВРЕМЯ: 01:47:04  

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

  • % 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 позволяет вам работать с определенной датой. Вы можете указать дату в виде удобочитаемой строки даты, как показано ниже:

  date -d "2010-02-07 12:10:53"  
  Вс, 7 февраля, 12:10:53 CET 2010  

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

  date -d '16 декабря 1974 г. '+'% A,% d% B% Y ' 
  Понедельник, 16 декабря 1974 г.  

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

  date -d "last week"  
  Сб, 25 мая, 14:31:42 CEST 2019   

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

  date -d 'TZ = "Australia/Sydney" 06  : 30 следующего понедельника ' 
  Вс, 2 июня, 22:30:00 CEST 2019  

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

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

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

  TZ = Дата "Австралия/Мельбурн"  
  Сб, 1 июня 22:35:10 AEST 2019  

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

Epoch Converter #

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

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

  date +% s   
1559393792 

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

  date -d @ 1234567890  
  Сб, 14 февраля 00:31  : 30 CET 2009  

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

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

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

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

  date_now = $ (date "+% F-% H-% M-% S") echo $ date_now  

  2019-  06.01.15-02-27  

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

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

  date -r/etc/hosts  
  Вт, 24 июля, 11:11:48  CEST 2018  

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

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

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

  date --set = "20190601 17:30  " 

Заключение #

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

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

date terminal

сообщить об этом объявлении

Оцените статью
clickpad.ru
Добавить комментарий