현지 시간을 구성합니다. dpkg-tzdata 재구성

현지 시간을 구성합니다. dpkg-tzdata 재구성

나는 이것을 사용하여 현지 시간을 구성합니다.

dpkg-reconfigure tzdata 

ncurses 인터페이스입니다. 나는 이것을 프로그래밍하는 방법을 찾고 있습니다. 사용자 인터페이스 없이 ncurses를 실행할 수 있는 실제 방법이 있나요?

쉘 명령을 통해 현지 시간을 변경하는 방법은 무엇입니까?

답변1

쉘 명령을 통해 시간대를 변경하고 싶다고 가정합니다.

timedatectl귀하의 시스템에 있습니까?

만일이 경우라면:

timedatectl status현재 설정이 표시됩니다.

timedatectl list-timezones사용 가능한 시간대를 표시합니다.

timedatectl set-timezone Antarctica/Mawson설정하세요.

노트:RTC가 현지 시간으로 구성된 경우 RTC 시간도 업데이트됩니다.

답변2

사용자 인터페이스 없이 ncurses를 실행할 수 있는 실제 방법이 있나요?

echo Antarctica/Mawson >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata

예, 쉘 명령을 생성할 수 있습니다:

sh -c 'echo Antarctica/Mawson >/etc/timezone && dpkg-reconfigure -f noninteractive tzdata'

:)

하나 있다허점In tzdata: 특정 값은 다음에 의해 정규화됩니다 dpkg-reconfigure.

echo 'US/Central' >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata
# Current default time zone: 'America/Chicago'

echo 'US/Eastern' >/etc/timezone
apt-get install --reinstall tzdata
# Current default time zone: 'America/New_York'

답변3

제가 매번 취하는 접근 방식은 다음과 같습니다.

# /bin/ln -fs /usr/share/zoneinfo/Asia/Novosibirsk /etc/localtime

Linux부터 BSD 제품군까지 모든 곳에서 잘 작동합니다.

답변4

expect대화형 명령이 있는 경우 항상 프로그램을 사용할 수 있는 옵션이 있습니다 .

#!/usr/bin/expect -f
set timeout 360
spawn dpkg-reconfigure tzdata

expect "Geographic area:"

send -- "2\r"

expect "city or region"

send -- "134\r"

이는 표준 출력에서 ​​"expect"의 문자열을 찾은 다음 "send"의 문자열을 표준 입력으로 보냅니다.

관련 정보