Linux에서 일광 절약 시간제 (DST) 변경 사용 안함


12

몇 주 전, 터키 에너지 및 천연 자원부는 DST가 영구적이며 GMT + 3이 미국에서 영원히 사용될 것이라고 발표했다.

현재 Linux 서버의 시간대는 Europe / Istanbul로 설정되어 있습니다 . 그러나 tzdata 업데이트는 아직 릴리스되지 않았습니다.

업데이트가 없기 때문에 2016 년 10 월 30 일에 zoneinfo 파일 (/ usr / share / zoneinfo / Europe / Istanbul)에 선언 된대로 시간대가 GMT + 3에서 GMT + 2로 자동 변경됩니다.

2016 년 세부 정보는 다음과 같습니다.

# zdump -v /usr/share/zoneinfo/Europe/Istanbul | grep 2016
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 00:59:59 2016 UT = Sun Mar 27 02:59:59 2016 EET isdst=0 gmtoff=7200
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 01:00:00 2016 UT = Sun Mar 27 04:00:00 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 00:59:59 2016 UT = Sun Oct 30 03:59:59 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 01:00:00 2016 UT = Sun Oct 30 03:00:00 2016 EET isdst=0 gmtoff=7200

(업데이트가없는 경우) 이러한 상황이 발생하는 것을 막기 위해 서버 시간대를 고정 GMT + 3으로 설정하는 백업 계획을 세우기로 결정했습니다 . 고정 GMT + 3 이 설정 되면 이상한 동작에 직면하게 됩니다.

시간대를 변경하기 전에 서버에서 현지 시간과 UTC 시간을 확인하십시오.

# date
Wed Sep 21 11:13:11 EEST 2016
# date -u
Wed Sep 21 08:13:15 UTC 2016

시간대를 다음과 같이 고정 GMT + 3 으로 설정했습니다 .

# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

변경 후 서버에서 현지 시간과 UTC 시간을 확인하십시오. GMT + 3 시간 3 시간이며 이전 이를 3 시간이어야 UTC보다 나중에 UTC보다 상기 출력에서 볼 수 있듯이.

# date
Wed Sep 21 05:14:24 GMT+3 2016
# date -u
Wed Sep 21 08:14:26 UTC 2016

현지 시간이나 UTC 시간을 재설정하더라도 변경되지 않습니다.

# date -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 GMT+3 2016
# date
Wed Sep 21 11:16:02 GMT+3 2016
# date -u
Wed Sep 21 14:16:05 UTC 2016

# date -u -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 UTC 2016
# date
Wed Sep 21 08:16:01 GMT+3 2016
# date -u
Wed Sep 21 11:16:02 UTC 2016

오프셋이 뒤로 보이는 이유는 무엇입니까?

답변:


12

업데이트 # 1 : 표준 운영 체제에서 여러 운영 체제에 대한 표준 시간대 데이터베이스 업데이트가 최근에 릴리스되었습니다. 버전 tzdata2016g에는 언급 된 변경에 대한 설정 이 포함되어 있습니다.

어떤 시점에서이 질문은 superuser.com 에서 질문 한 내용 과 중복 됩니다.

명확한 대답은

"POSIX 표준과의 하위 호환성을 위해 Etc / GMT + 6과 같은 영역이 의도적으로 반전되었습니다"

그러나 Linux 시스템에서 DST 변경을 비활성화하려는 사람들을 돕기 위해 삭제해서는 안된다고 생각합니다.

DST 변경을 비활성화하려면/etc/localtime 파일을 폴더 아래에있는 zoneinfo 파일 중 하나에 연결하십시오./usr/share/zoneinfo/Etc/

명령 예 :

# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

가장 적합한 zoneinfo 파일을 선택하려면 대상 GMT의 부호를 바꾸 십시오.

즉, GMT + 3 시간대 (UTC보다 3 시간 빠름)를 설정하려면 / usr / share / zoneinfo / Etc / GMT-3을 사용해야합니다.


+1하지만 실제로는 POSIX에 대해 알아야 할 모든 것과 거의 모든 사람들이 싫어하는 이유가 있습니다.
MadHatter

2

어느 시점에서 TZ 테이블에 대한 새로운 개정판이 릴리스되어 모든 Linux 배포판에 대한 업데이트를 사용할 수 있습니다. 흠 ....이 문제에 대한 발표가 발표 된 직후 업데이트 된 시간대 표를 사용할 수 있다고 맹세 할 수있었습니다. 상황에 맞는 새로운 TZ 지정자가있을 수 있습니다.


1
당신과 동의. 업데이트하면 아무런 문제가 없습니다. 우리는 단지 백업 계획에 대해 이야기하고 있습니다.
vaha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.