⌛ Как отключить летнее время (DST) и изменить часовой пояс в Linux

by itisgood

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

В этом руководстве описаны действия по отключению DST и изменению часового пояса на сервере Linux.

В этом примере время устанавливается согласно Москве с часовым поясом GMT+3.

Файлы в ОС задействованы следующие:

/etc/sysconfig/clock
/etc/localtime

Если вы загляните в каталог /usr/share/zoneinfo/Etc на сервере, вы увидите подкаталоги по странам и даже по часовым поясам внутри страны.

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

В нашем примере мы находимся в Москве, GMT+3: 00.

Там лежат файлы zoneinfo, которые отличаются от жестко закодированных DST:

GMT
GMT0
GMT-0
GMT+0
GMT-1
GMT+1
GMT-2
GMT+2
GMT-3
GMT+3
GMT-4
GMT+4
GMT-5
GMT+5
GMT-6
GMT+6
GMT-7
GMT+7
GMT-8
GMT+8
GMT-9
GMT+9
GMT-10
GMT+10
GMT-11
GMT+11
GMT-12
GMT+12
GMT-13
GMT-14

Таким образом, каталог / файл для них будет: /usr/share/zoneinfo/Etc/GMT+3

1. Измените файл /etc/sysconfig/clock следующим образом:

# vi /etc/sysconfig/clock
ZONE="Etc/GMT+3"
UTC=true
ARC=false

2. Выполните следующие действия, чтобы правильно установить файл / ссылка /etc/localtime:

# cd /etc
# rm /etc/localtime
# ln -s /usr/share/zoneinfo/Etc/GMT-3 /etc/localtime
# ls -al localtime
# date

Приведенная выше команда «ls -la localtime» должна показывать файл /etc/localtime в виде символической ссылки на /usr/share/zoneinfo/Etc/GMT+3.

Также команда «data» должна возвращать правильное время для Москвы- GST+d3: 00.

○ → date
Пн май 27 16:21:09 MSK 2019

3. Для баз данных – единственное, в чем вы должны убедиться, это то, что у владельца ОС БД нет установленных переменных среды TZ.

Когда ваши базы данных запускаются – если они не видят никаких установленных переменных TZ – они будут использовать время ОС в качестве времени БД.

– Подключитесь как пользователь БД и запустите:

# env |grep -i TZ

Вывод вышеуказанной команды не должен показывать ничего, установленного в ОС как «TZ =»

. Если какой-то часовой пояс уже установлен, вам нужно изменить профиль пользователя Oracle Db, чтобы он не был установлен.

 

You may also like

Leave a Comment