리눅스 timedatectl

리눅스에서 날짜/시간을 조정하는 방법에는 여러 가지가 있다.

완전 수동 방식: date 명령어로 날짜 시간을 조정하였음.
옛날(?) 방식: ntpdate, rdate 로 time 서버와 시간 동기화.
최신(?) 방식: timedatectl

1. Ubuntu 18.04 에서 timedatectl 사용하기.

전통적인 명령어인 date 명령어로 현재 날짜/시간을 확인 할 수 있다.

$ date
Tue Apr 21 10:57:03 KST 2020

하지만, timedatectl 명령으로는 현재 날짜, 시간, 타임존, 타임서버와의 동기화 여부를 모두 확인 가능하다.

$ timedatectl
                      Local time: Tue 2020-04-21 10:57:07 KST
                  Universal time: Tue 2020-04-21 01:57:07 UTC
                        RTC time: n/a
                       Time zone: Asia/Seoul (KST, +0900)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

timezone 변경을 위해서 timezone을 확인해 보면,

$ timedatectl list-timezones
Africa/Abidjan
...
Europe/Moscow
...
UTC

timezone을 모스코바로 변경해 본다.

$ sudo timedatectl set-timezone Europe/Moscow
$ timedatectl
                      Local time: Tue 2020-04-21 05:04:28 MSK
                  Universal time: Tue 2020-04-21 02:04:28 UTC
                        RTC time: n/a
                       Time zone: Europe/Moscow (MSK, +0300)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

time서버와 날짜 시간 동기화를 하지 않으려면,

$ sudo timedatectl set-ntp false
snowffox@web:~$ timedatectl
                      Local time: Tue 2020-04-21 11:11:31 KST
                  Universal time: Tue 2020-04-21 02:11:31 UTC
                        RTC time: n/a
                       Time zone: Asia/Seoul (KST, +0900)
       System clock synchronized: yes
systemd-timesyncd.service active: no
                 RTC in local TZ: no

위에서 systemd-timesyncd.service active 부분이 yes에서 no로 변경된 것이 보인다.

이제 시간/날짜를 변경해 본다.

시간 변경.

$ sudo timedatectl set-time 10:00:00

날짜 변경.

$ sudo timedatectl set-time 2020-04-22

변경후 날짜/시간을 확인해 보면 시스템 시간과도 동기화가 되지 않은것이 보인다.(system clock synchronized)

$ timedatectl
                      Local time: Wed 2020-04-22 00:00:04 KST
                  Universal time: Tue 2020-04-21 15:00:04 UTC
                        RTC time: n/a
                       Time zone: Asia/Seoul (KST, +0900)
       System clock synchronized: no
systemd-timesyncd.service active: no
                 RTC in local TZ: no

날짜/시간 동시 변경도 가능하다.

이제 다시 타임서버와 동기화하면,

$ sudo timedatectl set-ntp true
$ timedatectl
                      Local time: Tue 2020-04-21 11:16:02 KST
                  Universal time: Tue 2020-04-21 02:16:02 UTC
                        RTC time: n/a
                       Time zone: Asia/Seoul (KST, +0900)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

2. CentOS 7 minimal 설치 버전에서 timedatectl

Ubuntu18.04와는 다르게 NTP enabled 항목이 보인다.

CentOS7 timedatectl

# timedatectl
      Local time: Tue 2020-04-21 11:28:09 KST
  Universal time: Tue 2020-04-21 02:28:09 UTC
        RTC time: Tue 2020-04-21 02:28:35
       Time zone: Asia/Seoul (KST, +0900)
     NTP enabled: n/a

타임서버와 동기화하려고하니, 아래와같은 오류가 발생한다.

# timedatectl set-ntp true
Failed to set ntp: NTP not supported.

ntpd를 실행했을때,

# systemctl start ntpd
Failed to start ntpd.service: Unit not found.

ntpd가 설치되어 있지 않으므로, 설치해준다.

# yum install ntp

/etc/ntp.conf 에 사용할 ntp 서버를 설정한다.(여기서는 time.nist.gov를 최우선순위 time 서버로 설정)

# vi /etc/ntp.conf
...
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server time.nist.gov iburst
#server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
...

ntpd 서비스를 실행한다.

# systemctl start ntpd

재부팅시에도 ntpd가 실행되도록 한다.

# systemctl enable ntpd

ntpq 명령으로 시간 동기화를 확인.

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 time-d-b.nist.g .NIST.           1 u    2   64    1  179.859   -6.168   0.000
 send.mx.cdnetwo 216.239.35.8     2 u    1   64    1    3.071   -2.097   0.000

이제, datetimectl 명령으로 확인해 보면, 시간이 동기화 되고 있음을 볼 수 있다.

# timedatectl
      Local time: Tue 2020-04-21 11:42:12 KST
  Universal time: Tue 2020-04-21 02:42:12 UTC
        RTC time: Tue 2020-04-21 02:42:12
       Time zone: Asia/Seoul (KST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

ubuntu 와 centos의 시간 동기화부분이 ubuntu는 systemd-timesyncd.service, centos는 ntp를 사용하는 차이 말고 특별한 차이점은 없어보인다.

답글 남기기

Your email address will not be published.

%d bloggers like this: