리눅스 하드웨어 시간 동기화
리눅스 시스템을 운용하다 보면 하드웨어 시간과 OS 시간이 동기화되지 않아 수동으로 동기화를 시켜 줘야 할 때가 있습니다. 이런 경우 먼저 timedatectl 명령어로 동기화 상태를 확인해야 합니다.
[root@centos7-1 ~]# timedatectl
Local time: Sat 2021-11-06 18:55:29 JST
Universal time: Sat 2021-11-06 09:55:29 UTC
RTC time: Sat 2021-11-06 11:55:51
Time zone: Asia/Tokyo (JST, +0900)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/atimedatectl 명령어를 실행하면 Local time(현지 시간)과 RTC(하드웨어 시간)를 확인할 수 있습니다. RTC in local TZ(하드웨어 시간의 현지 시간대 표시)가 no로 되어 있기 때문에 RTC는 UTC 시간으로 표시되고 있다는 점을 알아야 합니다.
[root@centos7-1 ~]# timedatectl
Local time: Sat 2021-11-06 18:55:29 JST
Universal time: Sat 2021-11-06 09:55:29 UTC
RTC time: Sat 2021-11-06 11:55:51
Time zone: Asia/Tokyo (JST, +0900)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a제 시스템의 Time zone은 Asia/Tokyo로 설정되어 있으니 UTC 시간을 기준으로 9시간을 더하면 현지 시간이 됩니다. 그리고 Universal Time인 UTC 시간과 RTC 시간이 맞지 않는 것도 알 수 있습니다. 하드웨어 시간이 정확한 시간이므로 OS 시간을 하드웨어 시간으로 동기화하도록 하겠습니다.
OS 시간을 하드웨어 시간과 동기화하기 위해서는 다음 명령어를 실행하면 됩니다.
[root@centos7-1 ~]# hwclock --hctosys다시 timedatectl 명령어로 동기화 상태를 확인해 보겠습니다.
[root@centos7-1 ~]# timedatectl
Local time: Sat 2021-11-06 21:16:18 JST
Universal time: Sat 2021-11-06 12:16:18 UTC
RTC time: Sat 2021-11-06 12:16:18
Time zone: Asia/Tokyo (JST, +0900)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a잘 동기화된 것을 확인하였습니다.
이와는 반대로 하드웨어 시간을 OS 시간과 동기화하고 싶을 때는 다음 명령어를 실행하시면 됩니다.
hwclock --systohc하드웨어 시간과 OS 시간을 동시에 같은 시간으로 변경하려면 다음과 같이 timedatectl 명령어로 변경하시면 됩니다.
timedatectl set-time "2021-11-06 21:20:00"실행해 보도록 하겠습니다.
[root@centos7-1 ~]# timedatectl set-time "2021-11-06 21:20:00"; timedatectl
Local time: Sat 2021-11-06 21:20:00 JST
Universal time: Sat 2021-11-06 12:20:00 UTC
RTC time: Sat 2021-11-06 12:20:00
Time zone: Asia/Tokyo (JST, +0900)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/aOS 시간과 하드웨어 시간이 동시에 변경된 것을 확인하였습니다.