Configurando o fuso horário com um script automatizado

18

Estou escrevendo scripts para automatizar a configuração de novas instalações de hosts de fatia. Em um mundo perfeito, depois que eu comecei o roteiro, ele seria executado, sem nenhuma atenção minha. Eu consegui, com uma exceção.

Como faço para definir o fuso horário, em permanente (sobreviver a reinicialização) e sã (ajustar para o horário padrão e horário de verão, portanto, não apenas forçar a data) ... maneira que não requer entrada de mim?

Atualmente, estou usando

 dpkg-reconfigure tzdata

Isso não parece ter como forçar parâmetros para isso. Requer entrada do usuário.

EDIT: Estou editando aqui, em vez de comentar, já que os comentários não parecem permitir bloqueios de código.

Aqui está o código real que acabei com, com base no comentário do Rudedog abaixo. Eu também percebi que isso não atualiza o / etc / timezone. Eu não tenho certeza de quem usa isso, mas no caso de alguém fazer isso, eu estou configurando isso também.

TIMEZONE="America/Los_Angeles"      
echo $TIMEZONE > /etc/timezone                     
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime   # This sets the time
    
por Tom 16.12.2009 / 16:57

7 respostas

17

Você deve conseguir fazer isso com

cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

Substitua o fuso horário apropriado no comando acima.

    
por 16.12.2009 / 17:11
3

No Ubuntu 12.04, o seguinte fez o truque para mim:

# http://manpages.ubuntu.com/manpages/precise/man7/debconf.7.html
export DEBCONF_NONINTERACTIVE_SEEN=true DEBIAN_FRONTEND=noninteractive
echo "Europe/Berlin" > /etc/timezone
dpkg-reconfigure tzdata
    
por 19.03.2013 / 18:11
3

Tente isto:

echo "Europe/London" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
    
por 28.04.2015 / 08:47
2

Atualize o symlink /etc/localtime para apontar para o fuso horário correto em /usr/share/zoneinfo/

    
por 16.12.2009 / 17:11
1

Corri para isso eu mesmo. Aqui está uma configuração completa de como fazer isso corretamente (é uma agregação de comentários aqui e esta pergunta ):

#Set time zone and time
echo "tzdata tzdata/Areas select Europe" | debconf-set-selections
echo "tzdata tzdata/Zones/Europe select London" | debconf-set-selections
TIMEZONE="Europe/London"
echo $TIMEZONE > /etc/timezone
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime
/usr/sbin/ntpdate pool.ntp.org
    
por 01.07.2010 / 10:43
0

tzdata usa o debconf para responder a essa pergunta, então você precisa preenchê-lo previamente. Existem várias maneiras de fazer isso, o mais fácil é pré-configurar a resposta durante a instalação . Além disso, você pode configurar um banco de dados padrão para o debconf usar, veja a página debconf(7) para como fazer isso.

    
por 16.12.2009 / 17:19
-2

Verifique também se o ntpd está instalado e em execução.

yum install ntpd
ntpdate pool.ntp.org
service ntpd start
    
por 25.03.2010 / 11:14