데비안에서 시간대를 어떻게 영구적으로 재설정합니까?


29

드림 호스트는 중서부 지역에도 불구하고 우리가 PDT를 좋아한다고 생각하는 것 같습니다. 시간대를 어떻게 변경합니까?

답변:


73

내가 사용하기 쉬운 도구는 dpkg-reconfigure입니다. 용도:

sudo dpkg-reconfigure tzdata

에 포함되지 않은 항목을 포함하여 다양한 선택이 제공됩니다 tzselect.


이 방법을 사용하면 얻을 수있는 이점은 재현 가능한 방식으로 수행하고 존재하지 않는 시간대에 넣는 것과 같은 잘못된 일이 발생할 가능성을 제한한다는 것입니다.
Mogget

1
이것은 좋은 일이지만 대화식이 아니기 때문에 스크립트 가능 옵션이 필요한 경우 아래 답변을 참조하십시오.
mc0e

14

이것은 아마도 OP에 약간 늦었고, 여기에 도착한 다른 검색 자들을위한 것입니다.

비 대화식 솔루션이 필요한 경우 dpkg-reset tzdata 및 debconf-set-selections 를 사용 하여 시간대변경 하여이 솔루션을 사용해보십시오.

echo "Europe/Zurich" > /etc/timezone 
dpkg-reconfigure -f noninteractive tzdata

/ usr / share / zoneinfo에서 검색하여 시간대를 알아낼 수 있습니다. 실제로 위의 dpkg-reconfigure 명령은 해당 파일을 / etc / localtime으로 복사합니다. 나는 그것을 수동으로하는 데 익숙했으며 정상적으로 작동하는 것 같습니다.

장시간 실행되는 프로세스가 변경 사항을 적용하지 않아도 놀라지 마십시오. 예를 들어 Apache 로그 타임 스탬프가 떠 오릅니다. 중요한지 여부와 실행중인 프로세스를 다시 시작해야하는지 또는 다시 부팅해야하는지 고려하십시오.


3
이것이 작동하려면 /etc/localtime아직 존재하지 않는 요구 사항입니다 . 존재하고에 대한 소프트 링크 /usr/share/zoneinfo/whatever인 경우 기본으로 사용되며 /etc/localtime그에 따라 업데이트되어 변경 사항을 덮어 씁니다.
Multisync

11

최근 데비안 및 우분투 버전 (Stretch / Xenial 등)에서 대화식으로 편집하지 않으려면 제거해야합니다 . /etc/localtime그렇지 않으면 /etc/timezone덮어 씁니다.

echo 'Europe/Zurich' > /etc/timezone 
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

이 답변은 mc0e의 답변을 기반으로합니다. 평판이 좋은 의견을 추가 할 수 없습니다.


3

TL; DR

echo "TZ=Etc/UTC" >> /etc/environment
tzconfig

여기서 Etc/UTC원하는 시간대 당신은 사용하여 찾을 tzselect.

더 긴 버전

사용할 때

dpkg-reconfigure tzdata

재부팅 후에는 시간대 정보가 유지되지 않습니다. 당신은 당신의 설정을 확인할 수 있습니다

diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`

만 업데이트하는 경우 /etc/timezone, 업데이트가 일치하지 않습니다 /etc/localtime때문에, 그것을 실행하는 것이 좋습니다

tzconfig

tzselect실제로 존재하는 시간대를 찾거나 /usr/share/zoneinfo디렉토리 를 찾아 보는 데 사용하십시오 .

POSIX 시스템에서는 다음 TZ보다 우선해야합니다 /etc/localtime.

export TZ='Europe/Berlin'
$ date
Tue Apr 10 08:51:03 CEST 2018
export TZ='Pacific/Efate'
$ date
Tue Apr 10 18:28:33 +11 2018

직접 사용하면 일부 프로그램이 현재 날짜를 요청할 때마다 자주 사용하는 날짜 / 시간 관련 기능이 파일 시스템에 액세스해야하므로 TZ 많은 시스템 호출저장할 수 있습니다. 미세 최적화이지만 매우 간단합니다.


TZ프로필 파일로 내 보내면 심볼릭 링크가 만들어 집니까? 그것은 내 경험에서 전혀 사실이 아닙니다. 아마도 "또한 심볼릭 링크를 만들어야합니다 ..."를 의미했을까요?
amn

1
@amn 아니오, 그것은 심볼릭 링크를 만들지 않을 것입니다. 나는 그것을 명확히하려고 노력했습니다. 그러나 $TZ변수는 glibc함수에 의해 읽 힙니다 : gnu.org/software/libc/manual/html_node/TZ-Variable.html
Tombart

해서는 안 echo "TZ=Etc/UTC" >> /etc/environment됩니까? 당신은 TZ=일부를 잃어 버렸습니다 ... 또한, 데몬과 같은 비대화 형 요소는 여전히 /etc/localtime하나의 세트 대신 버전을 사용합니다 TZ.
Matija Nalis

@MatijaNalis 네, 맞습니다. 정정 주셔서 감사합니다!
Tombart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.