¿Cómo podemos configurar automáticamente la zona horaria predeterminada del sistema en Linux usando Internet? Tal como lo veo, los servidores NTP pueden actualizar solo la hora, pero no la zona horaria. ¿Hay algún servidor que pueda cambiar la zona horaria?
linux
networking
timezone
geolocation
Programador Embebido
fuente
fuente
Respuestas:
Hace un tiempo escribí un programa que hace esto: tzupdate .
Puede ver en qué establecería su zona horaria (sin configurarlo realmente) ejecutando
tzupdate -p
:Puede configurarlo de verdad ejecutándose
tzupdate
como root.Esto funciona por:
/etc/localtime
para apuntar al archivo zoneinfo para esa zona horariafuente
Este es un hilo antiguo, pero sigue siendo relevante para kubuntu 1710 que no cambia la zona horaria automáticamente. Estoy usando la solución de Chris Down para tzupdate, pero también me aseguro de que se active cuando el sistema intenta conectarse a una red (wifi u otra). Esto supone que está utilizando Network Manager.
Abra una terminal primero.
Instalar tzupdate
Luego, asegúrese de que sea accesible para todos los usuarios
Prueba que funciona
Luego debemos asegurarnos de que todos los usuarios puedan acceder a este
que lo coloca como root y luego verifica que el comando cambie su zona horaria. Luego, asegúrese de salir para regresar como usuario normal
Asegúrese de que tzupdate se pueda ejecutar con sudo sin contraseña. Esto es necesario para un paso posterior cuando activamos esto desde networkmanager que ejecuta esto en segundo plano. Escribe esto en una terminal para editar el archivo sudoers
Agregue esta línea al final del archivo
Presione CTRL-X y luego presione Y y luego ENTER para guardar los cambios
Luego nos aseguramos de que NetworkManager siempre llame a esto después de activar un cambio de conexión de red (por ejemplo, cuando se conecta a un wifi). Para esto, creamos un archivo llamado tzupdate en la carpeta dispatcher.d que simplemente llama a sudo tzupdate. El archivo necesita permisos ejecutables para ejecutarse
Tenga en cuenta que NetworkManager llamará a ejecutar sudo (es decir, sudo tzupdate) que normalmente solicitará una contraseña.
Puede haber una mejor manera de hacer esto, es decir, hacer que NetworkManager llame a esto solo cuando active una conexión y no también hacia abajo (como lo hará anteriormente): he intentado poner el script en / etc / network / if-up .d pero esto no me ha funcionado
Para probar esto en Kubuntu: cambie su zona horaria local a otra (vaya al plasmoide Fecha en su barra de tareas y haga clic derecho y seleccione 'Ajustar fecha / hora' y luego 'Zona horaria' en la pestaña)
Apague su wifi y vuelva a encenderlo: verá que una vez que se conecta al wifi, parece esperar unos 30 segundos y luego debe cambiar su zona horaria con éxito.
Tenga en cuenta que esto no se ha probado con wifi, donde es necesario ingresar una contraseña en una página web. Afortunadamente, el hecho de que esto se ejecute al final de una conexión de red debería proporcionar suficiente tiempo para que un usuario ingrese sus credenciales; de lo contrario, esto podría necesitar más ajustes (verifique que exista una conexión, verifique que pueda conectarse a Internet, espere durante X segundos si no puede conectarse a Internet y luego vuelva a intentar Y veces
fuente
No está claro qué quiere decir con "actualización de zona horaria".
Unix y Linux mantienen el tiempo como la cantidad de segundos desde el 1 de enero de 1970 a las 00:00 UTC. El reloj del sistema Unix es, por lo tanto, independiente de la zona horaria. Las zonas horarias no existen en el kernel de Linux; es solo cuando una aplicación de espacio de usuario muestra el tiempo que el número de segundos desde 1970 se interpreta utilizando una zona horaria. Por lo general, esta interpretación se realiza a través de las funciones de la biblioteca C. La zona horaria es seleccionada por la
TZ
variable de entorno. Las definiciones de zona horaria (que consisten en un nombre de zona horaria, desplazamiento de UTC, fechas en que el horario de verano está vigente y las compensaciones durante el horario de verano) son parte de GNU libc, y generalmente se incluyen en las distribuciones de Linux como un paquete "tzdata". Por lo tanto, la actualización de las definiciones de zona horaria es cuestión de correrapt-get upgrade
,yum update
o alguna operación similar.Tenga en cuenta que algunos programas, como Java, tienen sus propios archivos de definición de zona horaria, que deben actualizarse por separado.
NTP realiza un seguimiento de la cantidad de segundos desde el 1 de enero de 1900, UTC . Por lo tanto, NTP, como el kernel de Unix, no tiene concepto de zonas horarias.
fuente