как узнать время на сервере 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 время на сервере?
В системе Linux весьма важно иметь правильное время и дату, поскольку от этого зависит многое. К тому же неважно, используете ли вы систему Linux на своем персональном компьютере или у вас Linux-сервер. В UNIX время обладает огромное значение: демоны вылязят для свершения тёмных злодеяний по crontab, в логах укрепляется время сообщений, а файловые системы хранят информацию о том, когда файл в последний раз обновлялся. Существует 2 способа для установки даты и времени в Linux:
Впрочем в системе по умолчанию настроена синхронизация времени с интернетом и я уже давно забыл что значит всегда перенастраивать часы, если они отстают, такая необходимость может появиться. В этой посте мы рассмотрим как выполняется установка времени Linux различными способами, через терминал, графичный интерфейс и так далее. Но сначала нам нужно понять как работает время.
Какое время бывает в Linux?
Для поддержания времени имеется в Linux есть команда date, и у неё есть множество других замечательных возможностей, о каких владельцы UNIX-систем могут и не догадываться. Серверные и системные часы должны указывать верное время. Время от времени часы на компьютере могут сбиваться по различным причинам, время сможет быть установлено изначально неправильно или неправильно выбран часовой пояс.
Немного теории. В любом компьютере есть два вида часов. Одни аппаратные (ЧРВ — часы настоящего времени или RTC — real time clock), которые работают даже при выключенном блоке кормления, на это у них есть батарейка на материнской плате. Другие программные, то есть часы (прибор для определения текущего времени суток и измерения продолжительности временных интервалов в единицах, меньших, чем одни сутки) операционной системы. Сведения этих часов могут различаться. При этом программные часы опираются на показания аппаратных при старте операторной системы. А в дальнейшем могут синхронизироваться через интернет с эталонными и корректировать ход аппаратных.
Внимание: дату и время может изменять только root-пользователь.
В большинстве ситуации если компьютер работает под управлением операционной системой Windows показания аппаратных и программных часов сходят. В linux же чаще всего аппаратные часы настраивают по гринвичу (времени нулевого экватора), а программные по необходимому смещению для часового пояса где расположен сервер. Абсолютное большинство прог (приложений и сервисов) в своей работе опираются на показания системных (программных) часов.
Узнать время на сервере в Linux Ubuntu
Знаете ли вы, что по умолчанию в Linux каждые день примерно в четыре часа ночи запускаются различные служебные задачи?! Например чистка временных каталогов, сжатие лог-файлов и т.п. А теперь представьте, что время на сервере настроено ошибочно и все эти задачи запускаются в час пик посещаемости вашего сайта. Правильно установленные дата и время нужны для корректной работы планировщика задач.
Кроме того, они пишутся во все основные целые лог-файлы и лог-файлы посещений веб-сервера. Никогда не возникало желания узнать время или дату, когда под рукой только Ubuntu, а телефон с часами где-то запропастились? Запустите команду date без характеристик для проверки времени. Как всегда в Ubuntu все элементарно, нужно только набрать команду:
Команда date — как раз для этих целей. Можно почитать ее справку — там много чего интересного.
Когда временная зона установлена неправильно, используйте «timeconfig» или «linuxconf» для корректировки. Если с преходящей зоной все в порядке, но дата или время нуждаются в обновлении, то используйте команды (Команда — группа лиц, объединённая общими мотивами, интересами) описанные ниже. Бригада во второй строке нужна что бы обновить машинный таймер.
Как узнать время через консоль Linux?
Наверное у многих были ситуации, когда под руками лишь консоль, а время узнать нужно. Для того, чтобы посмотреть текущее время чрез консоль Linux достаточно ввести следующую команду
Для этого, чтобы поменять время консоль Linux нужно ввести следующую команду:
где, MM — представляется месяцем, DD — днем, hh — часом, mm — минутой, CCYY — годом (вводим так – хххх), ss — секундами. То имеется в виде МесяцДеньЧасМинута, остальное [MMDDhhmm[[CC]YY][.ss]] по вкусу. Об это хорошо (и главное в самом верху) составлено в мануале man date, однако остальное писалось, по всей видимости, роботами для роботов. Воздействие нужно выполнять из под рута. Для того, чтобы посмотреть полный список команд, какие помогут вам изменить/настроить время через консоль Linux достаточно ввести
Как настроить время на сервере Linux чрез hwclock?
Проверим, что показывают аппаратные часы, для чего будем использовать три вида команды hwclock:
Ставим время аппаратных часов равное системному:
Ставим время системных часов на основании ЧРВ:
Устанавливаем время равновеликое указанному:
Приведенный пример для варианта когда аппаратные часы идут по UTC, а сервер настроен на Московский часовой пояс. Специальных пояснений требует опция —utc вывод времени производится (формируется) с условием, что аппаратные часы идут по времени UTC. То имеется показания должны совпадать с желаемым временем на сервере. Опция же —localtime наоборот демонстрирует время (форма протекания физических и психических процессов, условие возможности изменения) аппаратных часов без всяких поправок.
Настройка сервера времени ntp в Linux
Для этого, чтобы ваша система могла автоматический регулировать время, вам нужно установить програмку ntp. Получите ее из репозитария. После того, как она будет установлена, вы можете настроить ее следующим образом. Однократно хронируем время:
Если получили что-то вроде the NTP socket is in use, exiting — значивает ntpd демон уже запущен. В этом случае остановим его:
Налаживаем работу ЧРВ в BIOS на время по UTC:
Этой бригадой мы присвоили значение времени аппаратных часов равным системному времени. Как вы помните, целые часы мы синхронизировали командами выше. Проверим содержимое файла /etc/sysconfig/clock дабы система после загрузки правильно выставляла местное время.
Теперь целые и аппаратные часы вашего сервера будут автоматически синхронизироваться с эталонными серверами и постоянно показывать точное время. Теперь вы знаете как выполняется установка времени linux. Как видите, это очень просто, вы можете использовать различные способы, в зависимости от того, что вам будет спокойнее.
Установка времени Linux
Время от времени часы на компьютере могут сбиваться по различным причинам, время может быть установлено изначально неправильно или неправильно выбран часовой пояс. Хотя в системе по умолчанию настроена синхронизация времени с интернетом и я уже давно забыл что значит постоянно перенастраивать часы, если они отстают, такая необходимость может появиться.
В этой статье мы рассмотрим как выполняется установка времени Linux различными способами, через терминал, графический интерфейс и так далее. Но сначала нам нужно понять как работает время.
Как работает время на компьютере?
Статья ориентирована на новичков, в первую очередь на них, потому что профессионалы уже и так знают как это сделать. Поэтому сначала рассмотрим как работает время в Linux. Когда компьютер работает часы идут, это ясно, но когда вы его отключаете, а затем включаете снова часы показывают не то время, на котором остановились, а правильное время. Это происходит потому, что часы на материнской плате идут постоянно. Таймер питается от той же батарейки, что и энергозависимая память BIOS.
Когда все проблемы с временем будут устранены, можно перейти установить нужное время и быть уверенным что оно не будет сбиваться. Дальше рассмотрим как это сделать.
Установка времени Linux
Вы можете видеть текущее время прямо на вашем рабочем столе, в KDE часы добавлены на панель, да и в Gnome, они размещены по центру панели по умолчанию:
Если навести курсор на время, вы увидите более подробную информацию, область уведомлений и календарь.
Но настроить время здесь уже не получится. Для этого нужно открывать настройки системы. Мы будем рассматривать настройки для Gnome. Откройте меню Dash и наберите в строке поиска «Параметры»:
Дальше откройте «Дата и время»:
Как видите, здесь уже установлено значение по умолчанию «Автоматическое определение даты и времени», а внизу есть пункт, который отвечает за часовой пояс.
Вы можете просто поменять часовой пояс чтобы время синхронизировалось правильно, если что-то не так. Также можно задать время вручную. Для этого сначала отключите автоматическую синхронизацию, а затем выберите дату и время:
Никаких кнопок нажимать не нужно, закройте окно выбора и новое время будет применено. Вы всегда можете вернуть настройки до значения по умолчанию.
Установка времени через терминал
Кроме графического интерфейса, у вас есть возможность делать все необходимые действия через терминал. Для этого есть утилита date. Сначала смотрим текущее время:
У утилиты есть множество опций отображения и настроек, но мы не будем их рассматривать. Есть еще одна команда, которая позволяет посмотреть системное время linux:
Чтобы установить время можно использовать ту же команду date. Для этого ей нужно передать строку со временем и датой, например:
В качестве строки можно брать ту, которую возвращает команда date без параметров, только она должна быть на английском, поэтому сразу смотрим:
Если у вас включена коррекция даты через интернет, то ее нужно отключить перед этим, потому что вы даже заметить изменений не успеете, как сервер времени linux установит правильное время. Можно сократить эту строку:
Вы изменяете текущее время, но аппаратное системное время linux не изменяется, чтобы сохранить изменения используйте команду:
Можно задать только время, тогда нужно использовать синтаксис времени ЧЧ:ММ:СС, например:
Еще раз говорю, что если включена синхронизация по сети, то вы не сможете изменить время. Но с помощью timedatectl ее можно отключить:
sudo timedatectl set-ntp no
Или включить обратно:
sudo timedatectl set-ntp yes
C помощью этой же команды можно не только установить время linux, но и настроить часовой пояс, для этого используйте опцию set-timezone:
sudo timedatectl set-timezone ‘Russia/Moscov’
Вы можете посмотреть список доступных часовых поясов командой:
Видео о настройке времени с помощью timedatectl:
Выводы
Вот и все. Теперь вы знаете как выполняется установка времени linux. Как видите, это очень просто, вы можете использовать различные способы, в зависимости от того, что вам будет удобнее. Если у вас остались вопросы, спрашивайте в комментариях!
8 Примеров команды Date для начинающих в Linux
Главное меню » Операционная система Linux » 8 Примеров команды Date для начинающих в Linux
Если вы ищете инструмент, который позволяет делать все это (и многое другое), вы будете рады узнать, что существует команда date. В этой статье мы обсудим основные команды «date», а также, как вы можете использовать ее. Но прежде чем мы это сделаем, стоит отметить, что все команды и инструкции, упомянутые здесь, были протестированы на Ubuntu 16,04 LTS.
Команда date в Linux
Вот общий синтаксис команды date:
А вот что говорит страница man об этом:
Следующие примеры должны дать вам хорошее представление о том, как эта команда работает.
Q1. Как получить системную дату/время с помощью команды date?
Это поведение по умолчанию. Чтобы узнать дату и время вашей системы, все, что вам нужно сделать, это запустить программу следующим образом (да, любой вариант без):
Вот команда в действии:
Таким образом, вы можете видеть, что информация, как день, дата, время, часовой пояс, а также год был показан на выводе.
Q2. Как получить дату, соответствующую дню?
Чаще всего, мы смотрим на календари, чтобы знать дату в определенный день недели. Например, требование может быть такое, узнать дату «когда следующий вторник». Вы будете рады узнать, что это возможно с помощью команды «date».
-d или –date параметр командной строки будет помощью в этом случае:
Вот вышеприведенная команда в действии:
Итак, как вы можете видеть, команда показала, что следующий вторник 4 июля.
Чтобы получить доступ к информации в документации на дату, используйте следующую команду:
Q3. Как отображать информацию о дате/времени в формате ISO 8601?
В случае, если вы хотите, инструмент для отображения информации о дате/времени в формате ISO 8601, вы можете использовать параметр –iso-8601 командной строки. Эта опция требует, указать формат.
Вот как страница man объясняет «format»:
Например, мы тестировали следующую команду:
На выходе было произведено:
Q4. Как отображать дату/время в формате RFC 3339?
Как вы уже догадались, есть специальный параметр командной строки для этого: –rfc-3339. Как вариант, рассмотренный в предыдущем разделе, один также требует ввести формат.
Следующий пример показывает эту опцию в действии:
Кроме того, вы можете использовать –rfc-2822 для возможности выводить данные в этом формате.
Q5. Как использовать дату для отображения времени последнего изменения файла?
Вы можете также использовать команду date, чтобы отобразить время последнего изменения файла. Опция -r позволяет сделать это. Вот пример:
Q6. Как установить системную дату/время, используя команду date?
Для установки системной даты/времени на другое значение, используйте параметр -s командной строки. Эта опция требует строку, которая будет использоваться в качестве входных данных для установки системной времени/даты.
Вот пример того, как мы использовали параметр -s, чтобы установить дату и время в нашей системы:
Q7. Как отобразить текущее время в другом месте?
Для того, чтобы команда date отображала текущее время в другом месте – скажем, Мельбурн в Австралии – использовать ее надо следующим образом:
Вот вышеприведенная команда в действии:
Q8. Как распечатать или установить всеобщее Скоординированное время (UTC)?
Для этого используйте параметр -u командной строки. Например, следующая команда будет отображать информацию в формате UTC:
Вывод
Как большинство из вас, согласитесь, команда date не трудно понять и использовать. Кроме того, тот факт, что она также может быть использована при работе с несколькими географическими местами делает ее важным инструментом командной строки. Мы обсудили большинство параметров командной строки здесь, так что просто попробуйте их на вашей системе.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как установить, изменить время и часовой пояс (timezone) в Debian
Данная статья является частью единого цикла статьей про сервер Debian.
Цели статьи
Введение
Во время установки Debian, сервер автоматически настраивает системное время на основе информации из bios. Инсталлятор предлагает вам выбрать только часовой пояс. При этом, если вы не правильно указали часовой пояс (timezone), его без проблем можно изменить после установки.
Так же ситуация, когда необходимо изменить время или часовой пояс, может возникнуть, если вы арендуете сервер за границей и вам разворачивают систему из готового образа. В таком случае timezone может быть указана не такая, как вы хотите. Надо будет изменить.
Зачем, собственно, следить за точным временем на сервере, кроме непосредственно удобства восприятия этого времени? Причин может быть много. Перечислю основные, которые пришли в голову.
Для избежания этих и других проблем, предлагаю приступить к настройке времени, даты и часового пояса на сервере под управлением системы Debian.
Как посмотреть и узнать системное время
Wed | день недели, в данном случае среда |
21 Aug | число и месяц, 21-е августа |
2019 | год |
03:38:12 | время в формате часы:минуты:секунды |
PM | обозначение времени суток, am или pm, до или после полудня |
MSK | часовой пояс, он же timezone |
Как вы видите, у нас установлен часовой пояс MSK, текущая дата и время в 12-ти часовом формате. Это не очень удобно. Если вам нужно посмотреть время в 24-х часовом формате, добавьте отображение +%R к date.
Подобные параметры удобно использовать в скриптах. Вот наиболее популярные комбинации просмотра текущего времени, которые использую я.
Установка и настройка времени в Debian
Для того, чтобы вручную установить дату, используем упомянутую выше команду date, только уже с дополнительными параметрами.
То же самое, только через timedatectl.
С помощью команды date так же можно посмотреть текущее время системы без учета часового пояса, то есть время по UTC.
В выводе видно время относительно нулевого меридиана, без поправок на часовой пояс. После установки корректного времени переходим к настройке часового пояса.
Установка, настройка и изменение часового пояса
Выше я рассказал, как узнать, в каком часовом поясе находятся системные часы сервера debian. В моем случае timezone установлена как MSK, то есть московский часовой пояс. Если у вас указан другой часовой пояс, а вы, к примеру, хотите установить московский, то делается это просто. Смена часового пояса выполняется через timedatectl:
Посмотреть список всех timezоne, доступных для установки на сервере, можно командой:
Перед настройкой или изменением часового пояса, рекомендуется обновить список timezone на сервере. Они периодически меняются.
После того как обновили и настроили часовой пояс, можно приступать к синхронизации времени.
Timedatectl для настройки времени в Debian
В большинстве современных дистрибутивов с systemd служба синхронизации времени уже присутствует в дефолтной установке и реализуется через systemd-timesyncd. Эта служба призвана заменить ntpd. Со слов разработчиков, она легче и быстрее, чем ntpd, плюс интегрирована в systemd, поэтому для автоматической синхронизации времени рекомендуется использовать именно ее.
Тут важно понимать, что systemd-timesyncd не может работать в качестве сервера времени, который мы настроим ниже. Так что, если у вас одиночный сервер, вам вполне подойдет timesyncd. Если же вы хотите использовать свой сервер времени, то надо настраивать ntp.
Для начала, давайте проверим, что у нас настроено в качестве службы обновления времени.
Синхронизация времени уже включена и работает через timesyncd. Посмотрим ее статус.
В принципе, больше ничего делать не нужно. Синхронизация времени через интернет уже настроена и работает. Время обновляется с сервера 2.debian.pool.ntp.org. Для надежности, можно убедиться, что служба работает, плюс, добавим ее сразу в автозагрузку, если ее там нет.
Список серверов для синхронизации времени в timedatectl настраивается в конфигурационном файле /etc/systemd/timesyncd.conf.
Синхронизация времени с помощью ntp и ntpdate
Если вам по какой-то причине не подходит описанная выше синхронизация, либо вам нужен свой сервер времени в сети, то timesyncd можно выключить.
Покажу теперь простую утилиту ntpdate, с помощью которой можно разово синхронизировать время, не автоматически. Для начала ее нужно установить в систему.
Дальше запускаем для разовой синхронизации.
Если у вас ntpdate выдает ошибку — the NTP socket is in use, exiting, значит у вас уже установлена и запущена служба ntp, которая заняла udp порт 123, необходимый для работы ntpdate. Установкой и настройкой этой службы мы и займемся далее. Также, если ntpdate не работает, посмотрите материал, может это ваш случай.
Для обновления времени сервера можно воспользоваться службой ntp. Ее так же надо установить отдельно.
Это старая проверенная служба времени, которую использовали еще задолго до появления systemd и его юнитов. Запустим ее и добавим в автозагрузку.
После запуска она сразу же автоматически синхронизирует время. Проверим статус службы ntp в Debian.
Синхронизация времени через ntp заработала сразу же. Дополнительная настройка не нужна, если вас не интересует свой сервер времени, который мы настроим ниже.
При этом, для проверки статуса службы времени ntp можно использовать утилиту ntpq. Посмотрим статус синхронизации.
Поясню значения каждого столбца.
Настройка сервера ntp в Debian
Теперь настроим свой сервер времени, с которого другие наши сервера смогут синхронизировать свои часы. Сервер времени ntp использует отдельный одноименный протокол — Network Time Protocol, который для работы использует UDP порт 123. Перед установкой и настройкой службы времени убедитесь, что на фаерволе открыт этот порт.
Так же я обычно отключаю ipv6 протокол, если он не используется. Для этого в файле /etc/default/ntp заменяем параметр на
После изменения конфигурации, перезапустим ntp и проверим статус службы.
Теперь убедимся, что она запущена.
Все в порядке, служба ntp запущена и готова принимать подключения. Для примера синхронизирую время одной из windows машин с нашим сервером времени.
Теперь другие компьютеры и серверы могут синхронизировать свои часы с нашего сервера Debian, где мы настроили ntp службу в качестве источника времени для остальных.
Заключение
Кратко подведу итог опубликованного материала. Мы рассмотрели практически все, что связано со временем на сервере Debian. Причем захватили нюансы systemd, который все больше забирает на себя функционала.
Я показал как устанавливать время, изменять часовой пояс, разово синхронизировать время с помощью ntpdate и настраивать сервер времени ntpd в локальной сети.
Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.