miércoles, 25 de abril de 2018

Cambiar fecha hora tiempo UTC y Local Linux

Debido a que tengo instalados varios sistemas operativos en la computadora algunas veces se
presenta el problema de que los sistemas se cambian  mutuamente la hora, entonces algunas 
veces hay que decirles a los sistemas y corregir su estado.
Para poder gestionar todo lo concerniente a la hora, reloj, zona horaria, etc. de la computadora 
está la herramienta (Nota: Debes usar este comando como administrador o sudo).

timedatectl

Con este comando podemos modificar como el sistema maneja la hora podemos hacer cambios 
en la forma que se maneja el reloj del sistema tales como:

    • cambiar la hora
    • establecer zona horaria
    • habilitar la sincronización con servidor remoto
    • decirle al sistema si el RTC es con hora local o UTC.

    El reloj físico del sistema (RTC) es el que guarda la hora aunque la computadora esté apagada y es 
    independiente de el sistema operativo.

    El reloj de sistema toma la hora del reloj físico cuando arranca y cuando ya se ha inicializado 
    es independiente del reloj físico.

    Los sistemas GNU/Linux guardan el tiempo en horario UTC que es el tiempo universal y lo convierte al 
    tiempo que nosotros lo necesitemos.

    Si deseamos saber los datos del sistema solo debemos escribir en la terminal

    timedatectl status

    y nos saldra algo asi:

         Local time: mié 2018-04-18 22:25:22 CST
      Universal time: jue 2018-04-19 04:25:22 UTC
            RTC time: mié 2018-04-18 22:25:22
           Time zone: America/Guatemala (CST, -0600)
         NTP enabled: no
    NTP synchronized: no
     RTC in local TZ: yes
          DST active: n/a




    Si revisamos con más detalle aunque puede ser claro veremos

    Local time: mié 2018-04-18 22:25:22 CST, es nuestra hora local del sistema
    Universal time: jue 2018-04-19 04:25:22 UTC, Es la hora universal
    RTC time: mié 2018-04-18 22:25:22,  es la hora que tiene el reloj físico
    Time zone: America/Guatemala (CST, -0600), es la zona horaria del sistema
    NTP enabled: no, si está habilitada la sincronización con servidor remoto
    NTP synchronized: no, si ya sincronizó  el sistema
    RTC in local TZ: yes, si el reloj físico está con la hora local o UTC
    DST active: n/a, si tiene sistema de cambio de horario de verano

    Cambiar la hora

    timedatectl set-time HH:MM:SS

    ejemplo:

    timedatectl set-time 20:32:45

    Esto cambiará el reloj del sistema junto con el reloj físico, también fallará si está habilitado la
    sincronización remota con NTP.

    Cambiar hora a local o UTC

    Ahora como me pasó a mí que necesitaba poner el reloj físico con la hora local y así decirle al 
    sistema que quería el reloj físico en horario local en lugar de horario UTC se le cambia así

    timedatectl set-local-rtc boolean

    ejemplo:

    timedatectl set-local-rtc 1

    Aquí le digo al sistema que el reloj físico lo quiero en horario local en lugar de UTC porque el “1” es
    verdadero se puede usar (true,t,yes,y), si fuera “0” sería falso se puede usar (false,f,no,n) lo cual
    significa que el reloj físico estaría en UTC, lo bueno de esto es que el automaticamente y cambia
    el reloj.

    Cambiar fecha y hora

    timedatectl set-time YYYY-MM-DD

    ejemplo:

    timedatectl set-time “2018-03-21 22:23:13”

     Cambiar zona horaria
    Para cambiar la zona horaria debemos listarla 

    timedatectl list-timezones

    nos saldrá la lista de todas las zonas horarias la filtramos con grep ya que son 424 zonas, ya sabes que el sistema diferencia entre mayúsculas y minúsculas.

    timedatectl list-timezones | grep America


    nos saldrá algo como lo siguiente (aquí acorte la lista):

    America/Adak
    America/Anchorage
    America/Anguilla
    America/Antigua
    America/Araguaina
    America/Argentina/Buenos_Aires
    America/Argentina/Catamarca
    America/Argentina/Cordoba
    America/Argentina/Jujuy
    America/Argentina/La_Rioja
    America/Argentina/Mendoza
    America/Argentina/Rio_Gallegos




    Y ahora podemos cambiar la zona que necesitamos, tu lo cambiaras al tuyo.


     timedatectl set-timezone <zona horaria>

    ejemplo:

     timedatectl set-timezone America/Antigua
      
    Sincronizando el reloj con un servidor remoto 

    También podemos sincronizar el reloj con un servidor remoto usando el protocolo NTP, este servicio puede ser habilitado asi:

     timedatectl set-ntp <boolean>

    ejemplo:

     timedatectl set-ntp yes

     Con el "yes" queda habilitada la sincronización con un servidor remoto para dehabilitarlo colocamos
    "no", el servicio fallará si no tenemos instalado el servicio NTP.