- Как изменить часовой пояс Linux
- Как работает время в Linux?
- Настройка часового пояса в linux
- 1. Ссылка /etc/localtime
- 2. Настройка с помощью tzdata
- 3. Настройка с помощью systemd
- 4. Настройка часового пояса в GUI
- Выводы
- Как установить часовой пояс в Linux
- Установка часового пояса в Debian / Ubuntu / Linux Mint
- Установка временной зоны с помощью tzselect
- Установка временной зоны прямым изменением файлов
Как изменить часовой пояс Linux
Мы очень часто пользуемся временем в Linux, начиная от простой задачи узнать сколько сейчас времени, до более сложной — посмотреть логи или узнать когда произошло то или иное событие в системе. Все завязано на времени, поэтому очень важно, чтобы часы шли правильно.
Наша планета разделена на часовые пояса, это было сделано с одной простой целью, чтобы время в любой точке планеты соответствовало солнечному времени. Время между этими зонами отличается на час и всего таких поясов — 24, за эталон взято время по нулевому, Гринвичскому меридиану.
Поэтому в определенный момент время в разных участках планеты будет отличаться на час. В этой небольшой статье мы рассмотрим как изменить часовой пояс Linux, чтобы операционная система правильно работала со временем и могла правильно его синхронизировать через интернет.
Как работает время в Linux?
Операционная система Linux хранит и обрабатывает системное время в специальном Unix формате — количество секунд прошедших с полуночи первого января 1970 года. Эта дата считается началом эпохи Unix. И используется не ваше локальное время, а время по гринвичскому меридиану.
Для преобразования времени по Гринвичу в региональное время используется часовой пояс. Это преобразование выполняется для каждого пользователя. Это необходимо, чтобы каждый пользователь мог настроить для себя правильное по его временной зоне время. Такое поведение просто необходимо на серверах, когда на одной машине могут работать люди из разных частей мира.
По умолчанию в системе может быть установлен неправильный часовой пояс, это приведет к путанице в логах событий, да и другим трудностям. Но все это легко исправить. Дальше мы рассмотрим несколько способов изменить часовой пояс Linux.
Настройка часового пояса в linux
1. Ссылка /etc/localtime
Наиболее популярный и поддерживаемый в большинстве дистрибутивов способ установки часового пояса для всех пользователей — с помощью символической ссылки /etc/localtime на файл нужного часового пояса. Список доступных часовых поясов можно посмотреть командой:
Сначала создайте резервную копию текущего часового пояса:
cp /etc/localtime /etc/localtime.bak
Для создания символической ссылки используйте команду ln -sf. Файл зоны нужно выбрать из доступных в системе. Например, мой часовой пояс — Украина, Киев, для установки будет использоваться следующая команда:
ln -sf /usr/share/zoneinfo/Europe/Kiev /etc/localtime
Теперь можете проверить текущее системное время с помощью утилиты date:
Если у вас установлена утилита rdate можно синхронизировать время с сетью:
sudo rdate -s time-a.nist.gov
Осталось только синхронизировать ваши аппаратные часы с новыми настройками, для этого выполните команду:
Если нужно изменить часовой пояс только для определенной программы или скрипта, просто измените для нее переменную окружения TZ, например:
Эта настройка сохраняется только для текущего сеанса командной оболочки. Чтобы сменить часовой пояс linux для определенного пользователя тоже нужно использовать переменную среды TZ. Только ее нужно добавить в файл ~/.environment. Этот файл читается по умолчанию при входе в систему, а значит переменная будет доступна всем программам:
Готово, теперь вы знаете как выполняется настройка часового пояса linux для определенного пользователя.
2. Настройка с помощью tzdata
Если вы не хотите использовать описанный выше способ, можно воспользоваться специальными утилитами. Вот только в разных дистрибутивах используются свои утилиты. Рассмотрим варианты для самых популярных дистрибутивов.
В большинстве случаев вы увидите подобное диалоговое окно:
Здесь просто нужно выбрать нужный часовой пояс и нажать кнопку Enter. После этого для окончательного применения настроек нужно будет перезагрузить систему.
3. Настройка с помощью systemd
В systemd есть своя утилита для настройки даты и часового пояса. Чтобы узнать текущее состояние выполните:
Для просмотра всех доступных временных зон выполните такую команду:
А для установки нужного часового пояса используйте команду set-timezone, например, тот же Europe/Kiev:
sudo timedatectl set-timezone Europe/Kiev
4. Настройка часового пояса в GUI
В дистрибутиве Ubuntu и других, использующих Gnome, настройка часового пояса Linux может быть выполнена прямо в параметрах системы. Для этого выберите пункт Сведения о системе, затем Дата и время, выберите свое местоположение на карте, или наберите название для поиска в поле ввода:
В KDE аналогично можно установить часовой пояс в настройках системы. Запустите утилиту настроек, откройте пункт Локализация, перейдите в раздел Дата и время, а затем откройте вкладку Часовой пояс:
Остается выбрать часовой пояс в списке и нажать кнопку Применить. Здесь уже изменения должны проявиться моментально.
Выводы
Теперь вы знаете как выполняется установка часового пояса в linux и сможете настроить не только свой домашний компьютер но и сервер с множеством пользователей, которым нужен отдельный часовой пояс для правильного местного времени. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение видео, в котором подробно рассказано, что такое часовые пояса и зачем они нужны:
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как установить часовой пояс в Linux
В рамках первичной настройки Операционной Системы важно установить и по какому времени вы живёте, ведь при следующем обновлении времени через Интернет ваше время слетит.
Понятно, что операция установки временной зоны (таймзоны) – общая операция для многих систем, основанных на GNU/Linux. Однако, в разных дистрибутивах это делается по-разному.
Установка часового пояса в Debian / Ubuntu / Linux Mint
Когда-то для настройки временных зон в дистрибутивах, основанных на Debian использовалась утилита tzconfig . Однако, в Debian традиционно настройки окружения делались через команду dpkg-reconfigure – вот и появилась такая возможность, а старую команду упразднили. Так что запустим перенастройку пакета tzdata :
sudo dpkg-reconfigure tzdata
Установка временной зоны с помощью tzselect
Утилита, созданная специально для выбора временной зоны, как не трудно догадаться, tzselect – это Time Zone select. Доступна во многих операционных системах на базе ядра Linux, а также и за пределами Linux, например, во FreeBSD.
У tzselect также довольно простой, но уже не псевдо-графический, а чисто консольный интерфейс с интерактивным режимом ввода. Также выбирается регион, страна и город, после чего настраивается часовой пояс.
# tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent or ocean. 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) Asia 6) Atlantic Ocean 7) Australia 8) Europe 9) Indian Ocean 10) Pacific Ocean 11) none - I want to specify the time zone using the Posix TZ format. #? 8 Please select a country. 1) Aaland Islands 18) Greece 35) Norway 2) Albania 19) Guernsey 36) Poland 3) Andorra 20) Hungary 37) Portugal 4) Austria 21) Ireland 38) Romania 5) Belarus 22) Isle of Man 39) Russia 6) Belgium 23) Italy 40) San Marino 7) Bosnia & Herzegovina 24) Jersey 41) Serbia 8) Britain (UK) 25) Latvia 42) Slovakia 9) Bulgaria 26) Liechtenstein 43) Slovenia 10) Croatia 27) Lithuania 44) Spain 11) Czech Republic 28) Luxembourg 45) Sweden 12) Denmark 29) Macedonia 46) Switzerland 13) Estonia 30) Malta 47) Turkey 14) Finland 31) Moldova 48) Ukraine 15) France 32) Monaco 49) Vatican City 16) Germany 33) Montenegro 17) Gibraltar 34) Netherlands #? 39 Please select one of the following time zone regions. 1) Moscow-01 - Kaliningrad 2) Moscow+00 - west Russia 3) Moscow+00 - Crimea 4) Moscow+00 - Caspian Sea 5) Moscow+00 (Moscow+01 after 2014-10-26) - Samara, Udmurtia 6) Moscow+02 - Urals 7) Moscow+03 - west Siberia 8) Moscow+03 - Novosibirsk 9) Moscow+03 (Moscow+04 after 2014-10-26) - Kemerovo 10) Moscow+04 - Yenisei River 11) Moscow+05 - Lake Baikal 12) Moscow+06 (Moscow+05 after 2014-10-26) - Zabaykalsky 13) Moscow+06 - Lena River 14) Moscow+06 - Tomponsky, Ust-Maysky 15) Moscow+07 - Amur River 16) Moscow+07 - Sakhalin Island 17) Moscow+07 - Oymyakonsky 18) Moscow+08 (Moscow+07 after 2014-10-26) - Magadan 19) Moscow+08 - E Sakha, N Kuril Is 20) Moscow+08 (Moscow+09 after 2014-10-26) - Kamchatka 21) Moscow+08 (Moscow+09 after 2014-10-26) - Bering Sea #? 2 The following information has been given: Russia Moscow+00 - west Russia Therefore TZ='Europe/Moscow' will be used. Local time is now: Mon Oct 27 12:26:20 MSK 2014. Universal Time is now: Mon Oct 27 09:26:20 UTC 2014. Is the above information OK? 1) Yes 2) No #? 1 You can make this change permanent for yourself by appending the line TZ='Europe/Moscow'; export TZ to the file '.profile' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the /usr/bin/tzselect command in shell scripts: Europe/Moscow
К примеру, только что мы выбрали временную зону Москвы.
Установка временной зоны прямым изменением файлов
Так как в Unix «всё есть файл», то и изменение времени мы также можем произвести через файлы. За время отвечают 2 файла: /etc/timezone и /etc/localtime .
Для начала запишем название часового пояса в /etc/timezone :
echo Europe/Moscow > /etc/timezone
Однако, не только названием они отличаются. Так, например, могут меняться как сами зоны, так ещё перевод на зимнее/летнее время может изменить отличие от «Гринвича», например, на час.
Так что установим и файл, отвечающий за часовой пояс:
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Так мы можем установить временную зону и без различных утилит.