Время сервера linux команда

Настройка даты и времени в 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.
Читайте также:  Which ip address linux

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

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

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

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

В результате будет создана копия файла settings.php под именем settings.php_back-070319. В данном случае используется директива $( ) для задания имени файла. Нужно заметить, что данный приём — очень мощный инструмент при работе в командной оболочке Linux.

Заключение

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

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

Источник

Linux date set — установка времени

Чтобы узнать какое время стоит на компьютере в командной строке Linux используют утилиту date. Она позволяет работать с датой и временем.

Синтаксис

data [параметры] [+ управление выводом ФОРМАТ]

  • -d. Показывает время и дату в строке. Например tommorow, last tuesday, wednesday, thursday, friday, saturday, sunday. Вся команда пишется date -d tommorow.
  • -r. Показывает время изменения файла.
  • -R. Выводит время согласно стандарту RFC-2822. Пример Tue, 13 Aug 2019 10:03:27 +0600.
  • -s или —set. Устанавливает системное время.
  • u. Вывод даты в международном формате UTC.
  • —help. На экране покажет справочную информацию.
  • —version. Версия программы.

Управление выводом это не обязательный параметр. Чтобы его включить необходимо написать знак + и шаблон.

  • %% — на экране знак процента.
  • %a — на экране текущий день недели, в краткой форме. Например «Втр».
  • %A — день недели в полной форме. Например «Вторник».
  • %b — текущий месяц в краткой форме (Авг).
  • %B — месяц в полной форме (Август).
  • %c — стандартный вывод даты и времени без часового пояса.
  • %C — аргумент покажет две первые цифры от года. Например если в системном времени стоит 2019, то на экране будет «20».
  • %d. Покажет какой сегодня день.
  • %D. Дата в формате месяц/число/год.
  • %e. Покажет какой сегодня день.
  • %F. Покажет дату в формате год — месяц — число.
  • %h. Текущий месяц в сокращенном варианте. Пример Авг.
  • %H. Сколько сейчас часов в формате 24.
  • %I. Часы в формате 12.
  • %j. Номер дня году, от 001 до 366.
  • %m. Какой месяц в формате от 1 -12.
  • %M. Выводит минуты в формате 00 до 59.
  • %S. Покажет сколько сейчас секунд на системных часах, от 00 до 59.
  • %n. Сделает отступ, две строки вниз.
  • %t. Табуляция, отступ одна строка вниз.
  • %T. Время в формате 00 (часы) : 00 (минуты): 00 (секунды).
  • %u. День недели числом, где 1 это понедельник, 2 -вторник, 3 — среда, 4-четверг, 5 — пятница, 6- суббота, 7 — воскресенье.
  • %x. Дата — день.месяц.год.
  • %X. Время — часы(24) : минуты : секунды.
  • %Z. На экране часовой пояс. Пример OMST — это неофициальное название локальной временной зоны города Омска.
  • %Y. Год.
Читайте также:  Проигрыватель windows media не удается получить доступ

Примеры

Для первого примера введем команду без параметров.
date

Как видно на скриншоте выше утилита без параметров покажет текущие время.

Когда синхронизация времени с внешним источником не работает и в локальной сети нет сервера времени, необходимо быстро установить системное время на Линуксе. Для этого используется утилита с параметром «-s». Пусть сейчас точное время 18:00:00.

Тогда установим время так:

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

date -s «2019-08-14 18:00»

Узнаем дату время изменения файла под именем «file». Для это используем аргумент «-r».

ВАЖНО! Если файл не лежит в текущей директории, необходимо указать путь. В моем случае это /root/file

Работа с часовым поясом

Чтобы вывести на экран время в определенном часовом поясе необходимо указать аргумент TZ по шаблону TZ=’часовой пояс’ date

TZ может принимать значения:

  1. ‘Europe/Moscow’;
  2. ‘Europa/Berlin’;
  3. ‘Europa/Polsha’;
  4. ‘America/Los_Angeles’;
  5. и другие.

Источник

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

Покупая, а точнее арендуя, сервер за границей (у зарубежного хостинг-провайдера), Вы наверняка сталкивались с ситуацией, что время на нем не совпадает с вашим. Особенно если вы не устанавливали операционную систему самостоятельно, а развертывали ее из предлагаемого хостером образа. Как правило оно идет по времени дата-центра или по гринвичу. По-совести говоря не принципиально в каком часовом поясе сервер, и что показывают часы. Их показания всегда можно скорректировать. Но, согласитесь, что гораздо приятней, когда сервер находится в вашей временной зоне и/или в зоне большинства посетителей вашего сайта.
В этой статье на примере CentOS (red hat linux) я покажу как удаленно изменить время на сервере с операционной системой Linux. Она будет полезна всем кто администрирует Linux server.

Какие часы бывают в Linux

Немного теории. В любом компьютере есть два вида часов. Одни аппаратные (ЧРВ — часы реального времени или RTC — real time clock), которые работают даже при выключенном блоке питания, на это у них есть батарейка на материнской плате. Другие программные, то есть часы операционной системы. Показания этих часов могут различаться. При этом программные часы опираются на показания аппаратных при старте операционной системы. А в дальнейшем могут синхронизироваться через интернет с эталонными и корректировать ход аппаратных.
В большинстве случаев если компьютер работает под управлением операционной системой Windows показания аппаратных и программных часов совпадают. В linux же чаще всего аппаратные часы настраивают по гринвичу (времени нулевого меридиана), а программные по необходимому смещению для часового пояса где расположен сервер.
Абсолютное большинство программ (приложений и сервисов) в своей работе опираются на показания системных (программных) часов.

Для чего нужно корректировать часы

  • Чтобы избежать вчерашних новостей и публикаций завтрашнего дня. К примеру часы вашего сервера идут по времени Хабаровска, а основные посетители из Европы (разница UTC+11). В такой ситуации вечерний посетитель увидит «завтрашние» даты на сайте. Так как когда в Европе вечер, то в Хабаровске утро следующего дня.
  • Чтобы было удобно настраивать задания Cron.
  • Чтобы время создания файлов совпадало с фактическим и не вводило Вас в заблуждение.
Читайте также:  Usb disk test linux

Как настроить время вашего сервера

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

Приведенный пример для случая когда аппаратные часы идут по UTC, а сервер настроен на Московский часовой пояс. Особых пояснений требует опция —utc вывод времени производится (формируется) с условием, что аппаратные часы идут по времени UTC. То есть показания должны совпадать с желаемым временем на сервере. Опция же —localtime наоборот показывает время аппаратных часов без всяких поправок.

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

Устанавливаем время аппаратных часов равное системному:

Устанавливаем время системных часов на основании ЧРВ:

Устанавливаем время равное указанному:

Значение временной зоны

Данные временной зоны для аппаратных часов в Centos хранятся в файле /etc/sysconfig/clock.
Для московской временной зоны в случае когда аппаратные часы идут по UTC он имеет следующее содержимое:

Где ZONE — это наш часовой пояс, UTC говорит о том, что аппаратные часы сервера идут по универсальному времени UTC, ARC в значении false — значит используется нормальное значение века (эпохи) UNIX.
Подробнее по конфигурации файла /etc/sysconfig/clock в CentOS можно почитать в официальной документации.

Системные часы операционной системы CentOS

Для системных (программных) часов CentOS используется команда date.

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

Изменение временной зоны (часового пояса) в CentOS

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

Это хорошая практика, когда вы делаете резервные копии оригинальных файлов конфигурации 🙂

Затем, создаем ссылку на необходимую временную зону.

где Europe/Moscow необходимая временная зона. Полный список доступных часовых поясов смотрим в каталоге /usr/share/zoneinfo/.
При необходимости можно установить значение времени вручную:

где MM – месяц, DD – день, hh – час, mm – минуты.
То есть чтобы задать, к примеру, 18 марта 20 часов 15 минут, нужно ввести следующее:

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

Настройка сервера времени ntp

Со временем часы могут убегать или отставать, поэтому время от времени их нужно синхронизировать с эталонными. Для этого в CentOS используется демон ntpd.
Установим демон ntpd если его нет в системе:

Однократно синхронизируем время:

Если получили что-то вроде the NTP socket is in use, exiting — значит ntpd демон уже запущен. В этом случае остановим его:

Настраиваем работу ЧРВ в BIOS на время по UTC:

Этой командой мы присвоили значение времени аппаратных часов равным системному времени. Как вы помните, системные часы мы синхронизировали командами выше.
Проверим содержимое файла /etc/sysconfig/clock чтобы система после загрузки правильно выставляла местное время. Для Москвы он должен содержать следующее:

Настраиваем демон ntpd на автозагрузку при старте операционной системы:

Запускаем демон синхронизации времени:

Проверяем системное время командой:

Оно должно совпадать с реальным.
Проверим, синхронизируется ли системное время с серверами эталонного времени (ntp server) и все ли там в порядке командой ntpq -p:

Источник

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