[server] dpkg 자동화-tzdata 재구성

꼭두각시를 사용하여 데비안 서버 클러스터를 관리하고 있습니다. 클러스터에서 각 컴퓨터의 시간대를 변경해야합니다. 이를위한 데비안의 올바른 방법은를 사용하는 것 dpkg-reconfigure tzdata입니다. 그러나 대화 상자를 사용하는 경우에만 변경하는 것처럼 보일 수 있습니다. 쉘에서 이것을 자동화 할 수있는 방법이 있습니까? 그래서 이것을 쉽게하기 위해 Exec을 작성할 수 있습니까?

그렇지 않다면 다음으로 가장 좋은 방법은 꼭두각시 가 클러스터 전체에 올바른 데이터를 배포 /etc/timezone하고 배포하는 것입니다 /etc/localtime.

모든 의견을 부탁드립니다!



답변

프론트 엔드를 ‘비 대화식’으로 지정해야하며 현재 설정이 저장됩니다.

dpkg-reconfigure는 현재 시스템 설정을 복음으로 받아들이므로 표준 시간대를 정상적으로 변경하고 비 대화식 플래그로 실행하십시오.

예를 들어 “유럽 / 더블린”으로 변경하려면 :

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

분명히 이것은 / etc / timezone도 배포하고 puppet / cfengine을 사용할 수있게합니다.


답변

허용 된 답변이 더 이상 작동하지 않기 때문에 (Debian Jessie, 2017 년 4 월) @gertvdijk의 댓글 링크 에서 수정 된 접근 방식 이 현재 작업을 수행하는 것으로 보입니다.

sudo ln -fs /usr/share/zoneinfo/Europe/Dublin /etc/localtime
sudo dpkg-reconfigure -f noninteractive tzdata


답변

debconf-set-selections 를 사용하여 구성을 사전 설정할 수 있어야 합니다. debconf-utils를 설치 debconf-get-selections | grep tzdata하고 올바르게 구성된 시스템에서 실행 하여 설정 내용을 파악하십시오.


답변

다음 의 적절한 zoneinfo 파일로 대체되는 (현재 기능이없는) Puppet wiki ( archive ) 의 레시피를 사용할 수도 있습니다 ./etc/localtime/usr/share/zoneinfo

class timezone {
    package { "tzdata":
        ensure => installed
    }
}

class timezone::central inherits timezone {
    file { "/etc/localtime":
        require => Package["tzdata"],
        source => "file:///usr/share/zoneinfo/US/Central",
    }
}

class timezone::eastern inherits timezone {
    file { "/etc/localtime":
        require => Package["tzdata"],
        source => "file:///usr/share/zoneinfo/US/Eastern"
    }
}

class timezone::pacific inherits timezone {
    file { "/etc/localtime":
        require => Package["tzdata"],
        source => "file:///usr/share/zoneinfo/US/Pacific"
    }
}

class timezone::mountain inherits timezone {
    file { "/etc/localtime":
        require => Package["tzdata"],
        source =>
             "file:///usr/share/zoneinfo/US/Mountain"
    }
}

dpkg-reconfigure가 추가 작업을 수행하는지 확실하지 않지만 위의 레시피를 사용했으며 완벽하게 작동합니다.


답변

매우 간단하며 명령을 입력하고 간단한 질문에 대답하면됩니다.
그런 다음 다음을 실행하십시오.

/usr/bin/tzselect


답변