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

Обновлено: 02.07.2024

Важным параметром в эксплуатации любого сервера является корректно настроенное время и его своевременная синхронизация. Как выполнить смену часового пояса в ubuntu в случае его изменения или неверного указания во время установки – одна из тем этой статьи. Также я расскажу про установку и использование программ для синхронизации времени и настройку службы точного времени ntp.

Время и дата в Ubuntu Server

Как я уже сказал во введении, следить за системным временем в ubuntu server нужно в обязательном порядке, как и в любом другом сервере. Начальные настройки вы делаете еще во время установки системы. Далее вам может понадобиться либо изменение часового пояса, либо более точная настройка и синхронизация часов.

Кстати, если вам интересно узнать, почему я лично использую именно ubuntu server, а не какой-то другой linux дистрибутив, то читайте мой обзор и сравнение ubuntu с другими системами.

Особенно актуальной тема системного времени становится, когда вы арендуете сервера где-то в другой стране с отличным от вашего часового пояса. По умолчанию, у хостера скорее всего будет установлен его часовой пояс. Иногда я забываю это проверить и замечаю только тогда, когда возникают какие-то проблемы. А вот список проблем, которые могут теоретически возникнуть, если на сервере будет неправильное время:

  1. При просмотре логов или разборе инцидентов придется сначала переводить время в свой часовой пояс или формат, чтобы адекватно разобраться в ситуации.
  2. Если у вас настроена какая-то интеграция с доменной структурой Windows, расхождение по времени может приводить к проблемам.
  3. При использовании cron и автоматических заданий для выполнения, неправильное время на сервере может удивить вас тем, что ваши задачи будут выполнены не тогда, когда вы этого ожидаете.
  4. Если на сервере работает web сайт или почтовый сервис, время публикации постов или отправления писем будет неправильным, что создаст неудобство пользователям.

Это список, что первым делом приходит на ум. Думаю, его можно сильно расширить, если потратить чуть больше времени. Но не вижу в этом смысла. Думаю, и так понятно, что часы на сервере должны всегда показывать точное время в нужном вам часовом поясе. Этим мы и займемся далее.

Утилита date

Посмотреть время в командной строке Ubuntu можно с помощью команды date.

ubuntu date

В данном случае вы видите следующую информацию:

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

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

Узнать время сервера в unix формате можно вот так:

Если у вас часовой пояс отличный от UTC, а вы хотите увидеть время именно в этом часовой поясе, то воспользуйтесь следующим ключом команды:

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

вывод времени с помощью date

Утилита timedatectl

ubuntu timedatectl

Local time Локальное время данного сервера
Universal time Время в часовом поясе UTC
RTC time Время на аппаратных часах
Time zone Ваш часовой пояс

С просмотром в консоли текущего времени сервера разобрались, переходим к его настройке.

Установка и настройка времени в Ubuntu

Ручная настройка времени в ubuntu обычно не представляет какой-то особой сложности, если понимаешь, как это сделать. Для того, чтобы самостоятельно установить время через консоль, необходимо запустить date через sudo со следующими параметрами:

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

В данном случае при обновлении времени мы подразумевали:

В моих примерах время отображается в 12-ти часовом формате на английском языке. Для того, чтобы перевести его в 24-х часовой формат, нужно изменить в locale параметр LC_TIME. Именно там стоит привязка к формату. Например, в локали en_US по умолчанию используется 12-ти часовой формат, а в ru_RU или en_GB 24-х часовой.

Для того, чтобы дата в консоли отображалась на русском языке, а время в 24-х часовом формате, достаточно сформировать locale ru_RU и изменить только формат времени, оставив все остальное на английском языке.

После этого необходимо завершить сеанс пользователя и залогиниться снова, чтобы изменение формата вступило в силу.

формат времени 12 или 24 часа

Еще один способ установки даты и времени с помощью timedatectl:

При этом вы можете получить ошибку: Failed to set time: Automatic time synchronization is enabled. Утилита timedatectl более умная, нежели date. Она проверяет, не настроена ли у вас автоматическая синхронизация времени. И если настроена, то вручную не дает его изменить. В целом, это правильный подход, хотя и может создавать неудобства. В этом случае вам надо отключить синхронизацию и только потом установить время руками. Эту тему мы будем рассматривать ниже отдельно.

Установка и настройка часового пояса в Ubuntu

Непосредственно со временем разобрались, рассмотрим теперь настройку временной зоны. Как посмотреть установленный часовой пояс, мы уже разобрались выше. Теперь разберем, как его изменить или просто задать, если ранее этого не сделали и у вас по умолчанию стоит UTC.

Вы увидите длинный список временных зон, состоящий из 348 строк. Его можно будет скролить, либо сразу ограничить вывод нужным вам диапазоном.

Список часовых поясов

После того, как выбрали зону, изменяем текущий часовой пояс.

или с помощью tzselect:

Настройка часового пояса в Ubuntu

Мы выполнили изменение часового пояса в ubuntu как минимум двумя разными способами. Не забудьте после этого на всякий случай проверить установленную timezone. Расскажу про еще один способ, как это можно сделать в консоли. После настройки тайм зоны, на нее создается символьная ссылка от файла /etc/localtime в директорию /usr/share/zoneinfo.

Меняя эту ссылку, можно так же изменять часовой пояс.

Синхронизация времени с помощью ntpdate, timedatectl

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

Синхронизация времени в ubuntu

После установки системы вам стоит проверить, а не запущена ли у вас уже синхронизация времени с помощью timesyncd. Проверяем:

Статус timesynctd

Клиент ntp

Если вас по какой-то причине не устраивает служба timesyncd, можете ее отключить.

А в место нее установить, к примеру, ntp, работающую в режиме клиента.

Поясню немного, зачем это может понадобиться. Если вам необходимо только синхронизировать время, то утилиты timesyncd вполне хватает для этой простой задачи. Но иногда вам нужен более широкий функционал. Например, вы хотите настроить в своей локальной сети свой собственный сервер времени, чтобы остальные компьютеры сверяли свои часы с ним. В этом случае вам нужна будет служба ntp. А раз вы ее и так поставите, то зачем вам дублирование функционала? В этом случае имеет смысл отключить timesyncd и оставить только ntp. Она умеет работать и в качестве сервера времени, и в качестве клиента синхронизации.

Итак, установили ntp. Для того, чтобы синхронизировать время, достаточно ее просто запустить:

Проверяем статус синхронизации:

ntp client

Видим пул серверов времени, с которыми наш ubuntu server будет синхронизировать свои часы. Настройки службы находятся в конфигурационном файле /etc/ntp.conf. Посмотреть информацию о работе ntp можно с помощью утилиты ntpq:

Далее рассмотрим вариант, когда вам нужен свой сервер времени в локальной сети. Для этого донастроим установленную службу ntp.

Настройка ntp сервера

Сервер времени в своей работе использует отдельный протокол NTP (Network Time Protocol). Ему нужен для работы UDP Port 123. Так что прежде чем дальше настраивать ntp, откройте этот порт на фаерволе или отключите его. Настройка firewall выходит за рамки данной статьи, так как в его качестве может использоваться разный софт. Если у вас управление фаерволом настроено через ufw, то достаточно такой команды:

Далее открываем конфиг /etc/ntp.conf и приводим его к примерно следующему виду:

Это минимально необходимое содержимое, чтобы запустить свой собственный сервер времени на базе ntp в локальной сети 10.20.1.0/24. Если вам не нужен протокол ipv6, то можете его отключить. Для этого в файл /etc/default/ntp добавляем параметр:

И перезапускаем службу ntp. Проверяем, как она работает.

Настройка ntp сервера в ubuntu

Служба времени слушает все сетевые интерфейсы. Теперь с любого клиента в локальной сети можно выполнить с помощью ntpdate синхронизацию времени с нашим Ubuntu Server. Проверьте это самостоятельно. Ранее я уже показывал, как это сделать.

Ошибки синхронизации времени

TIME_ERROR: 0x2041: Clock Unsynchronized

the NTP socket is in use, exiting

no server suitable for synchronization found

Еще одна популярная ошибка, которая может возникнуть при запуске ntpdate. Она означает, что не получается по какой-то причине установить соединение с сервером времени. В общем случае это означает, что есть какие-то сетевые проблемы, но не обязательно. Вы можете попробовать запустить ntpdate c ключом -u. Он означает, что будет использован локальный не 123-й порт udp, как обычно, а другой из непривилегированного диапазона. Иногда это помогает, так как многие провайдеры из-за известной уязвимости протокола ntp блокируют исходящий 123 порт.

Служба ntp не запускается после загрузки сервера

Если ntp не стартует после загрузки сервера, то связано это может быть в первую очередь с тем, что не отключена служба timesyncd. Отключите ее и проверьте еще раз:

Ubuntu меняет время и часовой пояс в bios

Убунта имеет дурную привычку при синхронизации времени устанавливать в bios часовой пояс UTC. В общем случае это не доставляет проблем, но если у вас установлена параллельно еще какая-то система на компьютере, то это может создавать проблемы. Чтобы Ubuntu не трогала часы в bios, необходимо выполнить следующую команду:

Время загрузки системы

Немного затрону еще одну тему, которая не связана напрямую с часами на сервере, но тем не менее имеет отношение ко времени. Эта информация наиболее актуальна как раз в этой статье.

Как узнать точное время включения компьютера с Ubuntu?

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

Время работы сервера

Эту же информацию можно получить с помощью утилиты who:

Время последнего выключения Ubuntu

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

Время последнего выключения Ubuntu

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

Заключение

Подвожу кратко итог сегодняшней статьи на тему настройки времени на сервере с ubuntu. Я рассмотрел все основные моменты, связанные с часами, часовыми поясами, а так же их синхронизацией. Если я забыл что-то важное, ошибся или у вас есть дополнения, без которых эта статья не видится вам полноценной и законченной, делитесь ими в комментариях. За это вам будет моя отдельная благодарность.


Время является важным аспектом в системах Linux, особенно в критически важных службах, таких как задания cron.

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

В этой статье мы сконцентрируемся на том, как установить время / дату / часовой пояс и синхронизировать часы сервера с вашим компьютером с Ubuntu Linux.

Проверьте текущее время

Вы можете проверить текущее время и дату, используя команду date и timedatectl.

Эти команды могут быть выполнены прямо из терминала от обычного пользователя или от суперпользователя.

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

Войдите в систему как пользователь root и используйте команду следующим образом:

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

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

Для проверки состояния времени в вашей системе, а также текущих настроек времени, используйте команду timedatectl, как показано далее:

Изменение времени

Мы используем timedatectl для изменения системного времени в формате HH: ММ: ss.

Для установки времени на 09:08:07 используйте команду следующим образом (используя timedatectl)

Используя команду date

Изменение времени означает, что все системные процессы выполняются в одно и то же время, при этом рабочий стол и сервер работают одновременно.

Из командной строки используйте команду date следующим образом:

• 10: час (hh)
• 13: минута (мм)
• 13: Второй (ss)

Чтобы изменить локаль на AM или PM, используйте %p в следующем формате.

Изменение даты

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

Если по какой-либо причине вам необходимо изменить его вручную с помощью команды date, мы можем использовать эту команду:

Он установит текущую дату и время вашей системы на «25 января 2014 года» и «09: 17: 00 AM».

Обратите внимание, что для этого у вас должна быть привилегия root.

Вы можете использовать timedatectl, чтобы установить время и дату соответственно.

Чтобы изменить дату на 15 января 2019 года, вы должны использовать следующую команду

Создать пользовательский формат даты

Чтобы создать собственный формат даты, используйте знак плюс (+)

$ date +”Day : %d Month : %m Year : %Y”
Day: 05 Month: 12 Year: 2013

Формат %D соответствует формату год / месяц / день.

Вы также можете указать название дня, если хотите.

Вот некоторые примеры :

$ date +”%A %B %d %Y %T”
Friday December 06 2013 00:30:37

$ date +”%A %B-%d-%Y %c”
Friday December-06-2013 12:30:37 AM WIB

Отобразить список / изменить часовые пояса

Изменение часового пояса имеет решающее значение, если вы хотите, чтобы все синхронизировалось с сетевым протоколом времени.

Первое, что нужно сделать, это составить список всех часовых поясов региона, используя опцию list-часовой пояс или grep, чтобы упростить понимание команды:

Приведенная выше команда представит прокручиваемый формат.


Если вы знаете, определенные часовые пояса установите его, используя имя с помощью следующей команды

Для отображения часового пояса выполните:

Установите Local-RTK

Часы реального времени (RTC), которые также называются аппаратными часами, не зависят от операционной системы и продолжают работать, даже когда сервер выключен.

Используйте следующую команду:

Кроме того, следующая команда для местного времени

Проверить / изменить время CMOS

Аккумулятор CMOS компьютера автоматически синхронизирует время с системными часами, если CMOS работает правильно.

Используйте команду hwclock, чтобы проверить дату CMOS следующим образом

Для синхронизации даты CMOS с системной датой используйте следующий формат

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

Как установить или изменить часовой пояс в Ubuntu 18.04

В Ubuntu часовой пояс системы устанавливается во время установки, но его можно легко изменить позже.

Использование правильного часового пояса важно для многих системных задач и процессов. Например, демон cron использует часовой пояс системы для выполнения заданий cron, а временные метки в файлах журнала основаны на том же часовом поясе.

Прежде чем приступить

Вам нужно будет войти в систему как root или пользователь с привилегиями sudo , чтобы изменить часовой пояс системы.


Проверка текущего часового пояса

В Ubuntu и большинстве других дистрибутивов Linux мы можем использовать timedatectl команду для отображения и установки текущего системного времени и часового пояса.


Как вы можете видеть в выводе ниже, часовой пояс установлен на UTC:

Системный часовой пояс настраивается путем символьной ссылки /etc/localtime на двоичный идентификатор часового пояса в /usr/share/zoneinfo каталоге. Итак, другой вариант - показать путь, на который указывает символическая ссылка, с помощью команды ls :

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

Изменение часового пояса с помощью timedatectl команды

Перед изменением часового пояса вам необходимо узнать длинное название часового пояса, который вы хотите использовать. В соглашении об именах часовых поясов обычно используется формат «Регион / Город».

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

Как только вы определите, какой часовой пояс соответствует вашему местоположению, выполните следующую команду от имени пользователя sudo:


Например, чтобы изменить часовой пояс системы на Europe/Rome :


Запустите timedatectl команду, чтобы проверить изменения:

Изменение часового пояса путем перенастройки tzdata

Если вы используете более старую версию Ubuntu , и timedatectl команда отсутствует в вашей системе, вы можете изменить часовой пояс, перенастроив tzdata .

Определите часовой пояс, который вы хотите настроить.

Сохраните новое имя часового пояса в /etc/timezone файл, используя следующую команду tee :

Выполните следующую команду, чтобы изменить часовой пояс системы:


Изменение часового пояса с помощью графического интерфейса

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

Откройте окно настроек системы, щелкнув Settings значок, как показано на изображении ниже:



В системных настройках окна на Date & Time вкладке, обрати Automatic Time Zone к OFF и нажмите на Time Zone поле:




Если Automatic Time Zone установлено значение ON и у вас есть подключение к Интернету, часовой пояс должен быть автоматически установлен в соответствии с вашим местоположением.

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




После этого нажмите, × чтобы закрыть окно.


Вывод

В этом руководстве мы показали вам, как изменить часовой пояс вашей системы Ubuntu.


Часовой пояс в Linux

Часовой пояс в Linux обычно настраивается во время установки системы. Иногда пользователю может потребоваться его изменить. Способ изменения часового пояса (его еще называют временной зоной) может зависеть от конкретного дистрибутива. Рассмотрим некоторые из способов изменения часового пояса.

Посмотреть текущий часовой пояс

Посмотреть текущий часовой пояс можно разными способами.

Команда date

Команда date выводит текущую дату, время и часовой пояс:

В выводе команды мы можем видеть, что текущая временная зона соответствует Москве — MSK .

Команда timedatectl

Утилита timedatectl применяется для настройки и получения информации о текущем системном времени. Она доступна в системах, использующих systemd.

Если выполнить команду timedatectl без параметров, то будет выведена информация о системных часах, а также часовой пояс (в поле Time zone ).

ls -lh /etc/localtime

Файл /etc/localtime это символическая ссылка, которая указывает на текущий часовой пояс, используемый в системе.

Для просмотра можно воспользоваться командной:

Получить список доступных часовых поясов

Утилита tzselect

Перед тем, как устанавливать часовой пояс, нужно понять, какое значение можно установить. Для этого можно воспользоваться утилитой tzselect .

После запуска утилита tzselect отображает список географических областей. Вы должны ввести номер области и нажать Enter . Затем появится список стран. Аналогично, нужно ввести номер страны. Появится список городов. Вводим номер города. В результате вы сможете увидеть название вашей временной зоны.

tzselect

Утилита timedatectl

Утилита timedatectl поддерживает опцию list-timezones . Выполнив следующую команду можно просмотреть список всех доступных временных зон:

Можно воспользоваться grep и ограничить область поиска. Например, выведем список временных зон только для Европы:

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

Изменяем часовой пояс утилитой timedatectl

Напомним, что утилита timedatectl доступна только для систем, использующих systemd. Если у вас нет утилиты timedatectl, то используйте способ описанный в следующем параграфе.

Для установки часового пояса с помощью утилиты timedatectl нужно выполнить команду:

Во время ввода часового пояса можно нажимать дважды клавишу Tab , чтобы получить список часовых поясов.

Изменяем часовой пояс настройкой /etc/localtime

Данный способ наиболее универсальный и работает в большинстве дистрибутивов Linux.

Необходимо создать символическую ссылку /etc/localtime , чтобы она указывала на файл нужной временной зоны. Файлы временных зон хранятся в каталоге /usr/share/zoneinfo/ . Каждая зона имеет путь /usr/share/zoneinfo/Название/Зоны . Например, для Москвы это /usr/share/zoneinfo/Europe/Moscow .

Итак создадим ссылку на нужный файл временной зоны:

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

Изменить часовой пояс только для одной программы или текущей сессии

Чтобы установить часовой пояс для отдельной программы можно задать его через переменную окружения TZ :

tz timezone

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

Изменить часовой пояс через графические утилиты

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

Если вы работаете в Gnome, откройте Параметры системы .

Перейдите на вкладку Сведения о системе , далее вкладка Дата и время (в зависимости от версии Gnome названия пунктов могут немного отличаться). Нажмите на надпись Часовой пояс .

Изменить часовой пояс в Gnome

Установка часового пояса

Откроется карта с возможностью интерактивного выбора часового пояса. Выберите мышкой нужный регион на карте.

Заключение

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

Читайте также: