Establecer la zona horaria con un script automatizado


20

Estoy escribiendo scripts para automatizar la configuración de nuevas instalaciones de servidor de corte. En un mundo perfecto, después de que comencé el guión, simplemente se ejecutaba, sin mi atención. He tenido éxito, con una excepción.

¿Cómo configuro la zona horaria, de forma permanente (reinicio de supervivencia) y sana (ajuste el horario estándar y el horario de verano, así que no solo forzar la fecha) ... de manera que no requiera mi opinión?

Actualmente estoy usando

 dpkg-reconfigure tzdata

Esto no parece tener ninguna forma de forzar parámetros en él. Exige la entrada del usuario.


EDITAR: estoy editando aquí, en lugar de comentar, ya que los comentarios no parecen permitir bloques de código.

Aquí está el código real con el que terminé, basado en el comentario de Rudedog a continuación. También noté que esto no actualiza / etc / timezone. No estoy seguro de quién lo usa, pero en caso de que alguien lo haga, también lo estoy configurando.

TIMEZONE="America/Los_Angeles"      
echo $TIMEZONE > /etc/timezone                     
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime   # This sets the time

Respuestas:


18

Deberías poder hacer esto con

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

Sustituya la zona horaria apropiada en el comando anterior.


1
deberías estar simpatizando que no copiar más
Zypher

1
Él está usando Debian. dpkg-reconfigure tzdatahace una copia, no un enlace simbólico. Creo que la razón es que / usr / share podría no estar montado en el momento del arranque.
Rudedog

Según la sección técnica de la página de manual de tzconfig para Debian:> El trabajo realizado por tzconfig es en realidad bastante simple. Simplemente actualiza el enlace / etc / localtime para apuntar a la zona horaria correcta instalada en / usr / share / zoneinfo /.
brent

1
tzconfig está en desuso en lenny a favor de dpkg-reconfigure tzdata y en realidad no hará nada. Puede verificar que se copia en lugar de enlaces simbólicos ejecutando dpkg-reconfigure tzdata y ver el resultado.
Rudedog



2

Actualizar /etc/localtimeenlace simbólico para apuntar a la zona horaria correcta en/usr/share/zoneinfo/


Tenga en cuenta que si usa un enlace simbólico y su /usrestá montado en una partición separada, cualquier cosa que comience antes de /usrmontarse no tendrá la zona horaria correcta. La mayoría de las distribuciones actuales, incluida Debian, copian en lugar de enlace simbólico.
Rudedog

1

Me encontré con esto yo mismo. Aquí hay una configuración completa de cómo hacer esto correctamente (es un conjunto de comentarios aquí y esta pregunta ):

#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

0

tzdatausa debconf para responder esa pregunta, por lo que debe rellenarla previamente. Hay varias formas de hacer esto, la más fácil es preseleccionar la respuesta durante la instalación . Más allá de eso, puede configurar una base de datos predeterminada para que debconf la use, consulte la página de debconf(7)manual para saber cómo hacerlo.


-2

También asegúrese de que ntpd esté instalado y ejecutándose.

yum install ntpd
ntpdate pool.ntp.org
service ntpd start
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.