GNU/Linux >> Tutoriales Linux >  >> Linux

7 ejemplos de comandos Linux hwclock para configurar la fecha y la hora del reloj del hardware

El reloj administrado por el kernel de Linux no es el mismo que el reloj del hardware.

El reloj de hardware funciona incluso cuando apaga su sistema.

El reloj de hardware también se denomina reloj BIOS. Puede cambiar la fecha y la hora del reloj del hardware desde el BIOS.

Sin embargo, cuando el sistema está funcionando, aún puede ver y configurar la fecha y hora del hardware usando el comando hwclock de Linux como se explica en este tutorial.

1. Mostrar la fecha y la hora del reloj del hardware

Simplemente escriba hwclock, que mostrará la fecha y hora del reloj de hardware de su sistema. Esta es la misma fecha y hora que verá en la pantalla del BIOS. También puede usar la opción -r o –show para mostrar la fecha y la hora.

# hwclock
Sat 10 Aug 2013 08:26:12 AM PDT  -0.312862 seconds

# hwclock -r
Sat 10 Aug 2013 08:20:54 AM PDT  -0.109748 seconds

# hwclock --show
Sat 10 Aug 2013 08:21:12 AM PDT  -0.640982 seconds

Nota:La salida del comando date puede ser la misma que la salida del comando hwclock (en realidad, debería ser la misma). Pero, el comando de fecha obtiene la fecha y la hora del reloj administrado desde el kernel de Linux. En este ejemplo, hay alrededor de 10 minutos de diferencia entre ellos.

# date
Sat Aug 10 08:11:21 PDT 2013

2. Copie la hora del sistema a la hora del hardware

Realmente desea asegurarse de que el reloj de su hardware tenga la misma fecha y hora que el reloj del sistema.

Como puede ver, actualmente hay una diferencia entre el reloj del sistema y la hora del reloj del hardware.

# date
Sat Aug 10 08:16:17 PDT 2013

# hwclock
Sat 10 Aug 2013 08:26:53 AM PDT  -0.687841 seconds

Por lo tanto, use el comando hwclock como se muestra a continuación para configurar el reloj del hardware igual que el reloj del sistema. Este es el uso típico del comando hwclock.

# hwclock -w

# hwclock
Sat 10 Aug 2013 08:16:27 AM PDT  -0.625382 seconds

# date
Sat Aug 10 08:16:28 PDT 2013

Nota:Las opciones -w y –systohc hacen lo mismo. Me gusta usar –systohc porque es fácil de recordar. –systohc significa "reloj del sistema al hardware", que copia la hora del sistema al reloj del hardware.

# hwclock --systohc

3. Establecer la fecha y hora del reloj de hardware manualmente

En lugar de copiar la fecha y la hora del sistema en el reloj del hardware, también puede establecer manualmente el valor mediante las opciones –set y –date como se muestra a continuación.

A continuación se establecerá la fecha para el 11 de agosto de 2013. Tenga en cuenta que si no especifica la hora, se establecerá a las 12:00:00 AM.

# hwclock --set --date 8/11/2013

# hwclock
Sun 11 Aug 2013 12:00:04 AM PDT  -0.703489 seconds

También puede configurar la fecha y la hora al mismo tiempo, como se muestra a continuación. Tenga en cuenta que utilizará la hora local de forma predeterminada.

# hwclock --set --date "8/11/2013 23:10:45"

# hwclock
Sun 11 Aug 2013 11:10:48 PM PDT  -0.562862 seconds

También puede tomar el resultado del comando de fecha y pasarlo a la opción –set y –date como se muestra a continuación.

# hwclock --set --date "Sat Aug 10 08:31:24 PDT 2013"

# hwclock
Sat 10 Aug 2013 08:31:28 AM PDT  -0.594118 seconds

4. Copie la hora del hardware a la hora del sistema

Cuando el reloj de su hardware muestra la fecha y hora correctas, pero no el reloj de su sistema, puede usar la opción -s como se muestra a continuación para copiar la hora del hardware a la hora del sistema como se muestra a continuación.

# hwclock
Sat 10 Aug 2013 08:20:28 AM PDT  -0.687872 seconds

# date
Sat Aug 10 08:34:48 PDT 2013

# hwclock -s

# date
Sat Aug 10 08:20:55 PDT 2013

Nota:Ambas opciones -s y –hctosys hacen lo mismo. Me gusta usar –hctosys porque es fácil de recordar. –hctosys significa "reloj de hardware al sistema", que copia la hora del reloj de hardware al reloj del sistema.

# hwclock -hctosys

Mientras prueba esto, si ha estropeado la hora de su sistema, puede usar los ejemplos de comandos de fecha para configurar la fecha y la hora correctas.

5. Modo de depuración hwclock

Cuando pasa la opción –debug a hwclock, muestra información de depuración, que muestra exactamente lo que hace el comando hwclock.

Lo siguiente muestra exactamente lo que hace cuando copiamos la hora del sistema a la hora del hardware.

# hwclock --systohc --debug
hwclock from util-linux-ng 2.17.2
Using /dev interface to clock.
Last drift adjustment done at 1375974983 seconds after 1969
Last calibration done at 1375974983 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2013/08/10 15:16:37
Hw clock time : 2013/08/10 15:16:37 = 1375974997 seconds since 1969
Time elapsed since reference time has been 0.009002 seconds.
Delaying further to reach the new time.
Setting Hardware Clock to 15:16:37 = 1375974997 seconds since 1969
ioctl(RTC_SET_TIME) was successful.
Not adjusting drift factor because it has been less than a day since the last calibration.

Lo siguiente muestra exactamente lo que hace cuando copiamos la hora del hardware a la hora del sistema.

# hwclock -hctosys --debug
hwclock from util-linux-ng 2.17.2
Using /dev interface to clock.
Last drift adjustment done at 1375975224 seconds after 1969
Last calibration done at 1375975224 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2013/08/10 15:23:20
Hw clock time : 2013/08/10 15:23:20 = 1375975400 seconds since 1969
Calling settimeofday:
        tv.tv_sec = 1375975400, tv.tv_usec = 0
        tz.tz_minuteswest = 420

Nota:En las máquinas alfa, puede usar getepoch para ver la época, setepoch para establecer la época. Cuando intente ejecutar esto en una máquina Alpha, obtendrá el siguiente error de máquina.

# hwclock --setepoch --epoch=1952
The kernel keeps an epoch value for the Hardware Clock only on an Alpha machine.
This copy of hwclock was built for a machine other than Alpha
(and thus is presumably not running on an Alpha now).  No action taken.

6. Ajustar el reloj de hardware

Cuando el sistema se inicia, toma la hora del reloj del hardware. La opción hwclock –adjust utiliza el archivo /etc/adjtime para controlar el ajuste.

# hwclock --adjust

El archivo /etc/adjtime tiene las siguientes tres líneas.

# cat /etc/adjtime
-3.019877 1375975224 0.000000
1375975224
UTC
  • Los tres valores en la primera línea representan 1) tasa de deriva sistemática en segundos por día, 2) número de segundos desde 1969 UTC del ajuste reciente 3) solo 0
  • La línea 2 tiene el mismo valor que ve en la primera línea, segundo valor. es decir, número de segundos desde 1969 UTC del ajuste reciente
  • La línea 3 dirá UTC o LOCAL

7. Modo de prueba hwclock

Cuando cambias cosas usando hwclock, usando la opción –test, puedes ejecutar el comando sin realmente hacer ningún cambio.

La opción –systz cambiará la zona horaria del sistema en consecuencia. Pero, dado que dimos –test, en realidad no hará el cambio, pero seguirá ejecutando el comando sin ningún problema.

# hwclock --systz --test
Not setting system clock because running in test mode.

El mejor uso del modo de prueba es cuando lo combina con la opción de depuración. Es decir, cuando desea ver qué hace el comando hwclock, pero sin realizar ningún cambio.

# hwclock --systz --test --debug
hwclock from util-linux-ng 2.17.2
Last drift adjustment done at 1375975224 seconds after 1969
Last calibration done at 1375975224 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Current system time: 1375975586 = 2013/08/10 15:26:26
Calling settimeofday:
        UTC: 2013/08/10 15:26:26
        tv.tv_sec = 1375975586, tv.tv_usec = 556277
        tz.tz_minuteswest = 420
Not setting system clock because running in test mode.

A continuación se muestra exactamente lo que hace la opción –adjust sin hacer realmente ningún ajuste.

# hwclock --adjust --test --debug
hwclock from util-linux-ng 2.17.2
Using /dev interface to clock.
Last drift adjustment done at 1375975224 seconds after 1969
Last calibration done at 1375975224 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2013/08/10 15:30:35
Hw clock time : 2013/08/10 15:30:35 = 1375975835 seconds since 1969
Time since last adjustment is 611 seconds
Need to insert -1 seconds and refer time back 0.978644 seconds ago
Needed adjustment is less than one second, so not setting clock.

Linux
  1. 7 ejemplos de comandos Linux df

  2. 8 ejemplos de comandos TR de Linux

  3. 7 ejemplos de comandos de fecha de Linux para mostrar y configurar la fecha y hora del sistema

  4. Ejemplos de comandos timedatectl en Linux

  5. Linux:establezca la fecha a través de la línea de comando

Comando de fecha en Linux con ejemplos de uso

11 ejemplos útiles de comandos de fecha de Linux

Cómo configurar la fecha y la hora en Linux

7 ejemplos de comando de fecha en Linux

Ejemplos de comandos de fecha de Linux

12 ejemplos útiles de comandos de fecha de Linux