Как изменить настройки часового пояса из командной строки

У меня есть виртуальная машина, которая настроена на PST что у пары коллег есть в разных часовых поясах.

Если бы я хотел изменить часовой пояс на ВОСТОЧНЫЙ и GMT, что мне нужно сделать?

Воспользуйся timedatectl

sudo timedatectl set-timezone <timeszone>

Примеры:

  • Часовой пояс как EST

    sudo timedatectl set-timezone EST
  • Часовой пояс как UTC

    sudo timedatectl set-timezone UTC
  • Список всех допустимых часовых поясов

    timedatectl list-timezones

Эта команда является идеальный для сценариев автоматизации, поскольку для этого не требуется никаких взаимодействие с пользователем в то время как по сравнению с другим данным ответом, основанным на dpkg-reconfigure tzdata.

Как root вы должны выполнить:

dpkg-reconfigure tzdata

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

Следующее также работает. Для GMT:

ln -sf /usr/share/zoneinfo/GMT /etc/localtime

Для EST:

ln -sf /usr/share/zoneinfo/EST /etc/localtime

Самый простой способ особенно для сервера это перечислить часовые пояса:

timedatectl list-timezones

И выберите свой, например:

timedatectl set-timezone Europe/Athens

Вот и все! , :-)

Отредактируйте timezone досье в /etc папку как:

Etc/GMT

Вы можете использовать следующий формат:

Region "/" City 

Пример /etc/timezone:

Europe/Athens

или

Europe/ParisEurope/London

Вы можете поэкспериментировать с: dpkg-reconfigure tzdataи проверьте файл часового пояса.

Вы должны перезагрузить или снова запустить службу (не службу ntp). Я не знаю, какой именно.Если кто-то знает, пожалуйста, поделитесь с нами. (Протестировано на Ubuntu 15.10, изменение учитывается мгновенно)

Чтобы запустить одну программу с разными настройками часового пояса, установите TZ переменная среды, например, run TZ=Pacific/Kiritimati date чтобы узнать, который час на острове Рождества, или export TZ=Pacific/Kiritimati чтобы настройка сохранялась в течение сеанса оболочки.

cp -p /usr/share/zoneinfo/US/Pacific /etc/localtime

Я не рекомендую использовать ссылки, подобные упомянутым другими. Если какой-то скрипт случайно перезапишет ваш /etc/localtime файл, затем он перезаписывает ваш файл тихоокеанского часового пояса ... и его замена немного затруднительна.

Просто скопируйте файл Pacific поверх файла localtime с помощью приведенной выше команды.

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

#!/bin/shsudo timedatectl set-timezone $(tzselect)echoecho timedatectl says:timedatectl

Я называю это tz-set.

Как root вы должны выполнить:

ln -fs /usr/share/zoneinfo/Europe/Warsaw /etc/localtime && dpkg-reconfigure --frontend noninteractive tzdata

Это сработало для меня на GCP Ubuntu 14 через SSH

  1. sudo su
  2. cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
  3. Перезагрузите сервер
  4. Сделано