Linux 시간 설정하기(2)


저번 포스팅에서는 UTC로 설정된 시간을 KST로 바꿔 한국의 시간으로 설정해주는 것에 대해서 배워봤는데, KST로 설정되어 있다고 해도 시간이 다른 경우가 있다. 이번에도 Ubuntu일 때와 CentOS일 때 2가지 경우를 모두 다뤄볼 것이며 실습은 모두 VM에서 진행했다. 다음의 경우를 보자.

  • Ubuntu 16.04

포스팅을 위해 오랜만에 VM을 켰더니 시간이 약 한 달 정도나 멈춰있었다. 하지만 저번 포스팅 때 KST로 설정해놔서 지역시간 설정은 건드릴 필요없고 진짜 시간 자체만 바꿔주면 된다. 방법이 여러가지가 있는데 하나하나씩 설명해보겠다.

  1. 타임 서버 이용하기

    타임 서버는 말 그대로 시간이 제대로 설정되어 있는 서버를 말한다. 즉, 이 서버의 시간과 맞춰주면 현재 시간과 맞게 되는 것이다. 사용법은

    rdate -s [타임서버]

    타임서버에는

    time.bora.net
    time.nist.gov 
    time.nuri.net
    time.kriss.re.kr
    time.windows.com
    

    등이 있고 시간 설정부분이므로 root권한에서 진행해야 한다. rdate가 없으면 먼저 apt-get update를 해준 후 rdate를 설치해서 실행하면 된다.

    sudo apt-get install rdate

    사실 엄밀히 말하면 시간이 저렇게 늦어져버리면 클라이언트(Ubuntu)와 update나 패키지를 설치해주는 서버가 시간이 서로 맞지 않는 상태이므로 update가 되지 않고 rdate 또한 설치가 진행되지 않아 결국 타임 서버를 이용할 수 없다. 여기서는 방법론에 대해서 설명하는 것이기 때문에 이렇게 설명을 한 것이지만 실제로 1번부터 진행해보면 안 될 것이다. 밑의 2,3 방법으로 시간을 먼저 맞춰놓고 rdate를 설치한 후 나중에 시간이 다시 맞지 않을 때 사용할 수 있는 것이다. rdate를 설치했다고 가정하고 하나의 예로 time.bora.net을 써보면

    sudo rdate -s time.bora.net

    이렇게 시간이 제대로 맞춰짐을 확인할 수 있다.

  2. 직접 설정하기

    이는 직접 시간을 입력하여 설정해주는 방법이다. 역시 root에서 진행해야 하며 사용법은

    sudo date -s [시간] 또는 sudo timedatectl set-time [시간]

    date -s [시간]은 날짜에 -를 빼고 20180814로 해도 똑같이 된다. 다음엔 timedatectl set-time [시간]을 써보자.

    timedatectl은 날짜에 -를 빼면 오류가 난다.

  3. 서버(하드웨어) 시간을 통한 설정

    1,2는 리눅스 시스템의 시간 설정 방법이고 3은 하드웨어의 자체 시간을 다루는 방법이다. 이는 hwclock 명령어를 이용한다. 이거 역시 root권한에서 진행해야 한다.

    date를 입력했을 때 리눅스 시스템의 시간은 7월 22일인 반면 hwclock을 입력했을 때 나오는 하드웨어 시간은 현재 시간에 맞춰져 있었다(오른쪽이 잘 맞춰져있는 현재 시간). 그래서 하드웨어 시간은 항상 현재에 맞게 설정되어 있는건가 생각했는데 다른 VM들을 보니까 그렇지도 않았다. 다른 경우도 종종 있었다. 따라서, 그냥 시간이 다르면 맞춰주면 될 것 같다.

    일단, 이번의 경우 하드웨어 시간은 현재 시간과 잘 맞춰져 있으므로 리눅스 시스템 시간을 하드웨어 시간에 맞춰보자. 사용법은

    hwclock -s

    리눅스 시스템 시간이 하드웨어 시간에 잘 맞춰졌음을 확인할 수 있다.

    그럼 반대로 리눅스 시스템 시간은 현재 시간과 맞는데 하드웨어 시간이 안 맞으면 어떻게 할까?? 예를 들어 현재 시간이 7월 22일인데 하드웨어 시간이 8월 14일인 경우인 상황이다.

    이런 경우는 hwclock -w를 써주면 된다.

    리눅스 시스템 시간에 맞춰서 하드웨어 시간이 변경되었다.


    • 참고 : 하드웨어 시간을 수동으로 설정할 수도 있다. 이 역시 root에서 진행해야 하며 명령어는

    sudo hwclock –set –date=”2018-08-13 12:24:42”

    잘 설정이 되었다.

  • CentOS 7

    Ubuntu와 그냥 똑같다. 위에 한 것처럼 똑같은 순서대로 해보면

    VM의 CentOS의 경우 시스템 시간이 실제 시간과 약 하루 정도 차이가 나는 상태였다. 이 역시 KST로 설정해놔서 지역시간 설정은 건드릴 필요 없고 진짜 시간 자체만 바꿔주면 된다.

  1. 타임 서버 이용하기

    타임 서버는 말 그대로 시간이 제대로 설정돼있는 서버를 말한다. 즉, 이 서버의 시간과 맞춰주면 현재 시간과 맞게 되는 것이다. 사용법은

    rdate -s [타임서버]

    타임서버에는

    time.bora.net
    time.nist.gov 
    time.nuri.net
    time.kriss.re.kr
    time.windows.com
    

    등이 있고 시간 설정부분이므로 root권한에서 진행해야 한다. 하나의 예로 time.bora.net을 써보면

    rdate -s time.bora.net

    오른쪽 현재 시간과 동일해진 것으로 보아 시간이 제대로 맞춰졌음을 확인할 수 있다. CentOS는 Ubuntu처럼 rdate를 따로 설치하지 않아도 됐다. 해당 명령어가 있어서 바로 타임서버를 이용할 수 있었다.

  2. 직접 설정하기

    이는 직접 시간을 입력하여 설정해주는 방법이다. 이 역시 root에서 진행해야 하며 사용법은

    date -s [시간] 또는 timedatectl set-time [시간]

    CentOS에서도 date -s [시간]을 사용할 때 날짜에 -를 빼고 20180722로 해도 똑같이 된다. 다음엔 timedatectl set-time [시간]을 써보자.

    반면 timedatectl은 Ubuntu에서와 똑같이 날짜에 -를 빼면 오류가 난다.

  3. 서버(하드웨어) 시간을 통한 설정

    1,2는 리눅스 시스템의 시간 설정 방법이고 3은 하드웨어인 서버의 자체 시간을 다루는 방법이다. 이는 hwclock 명령어를 이용한다. 이거 역시 root권한에서 진행해야 한다.

    앞에서 배운 rdate를 이용해 타임서버 시간과 맞춰져서 date를 입력하면 맞춰진 현재 시간이 나온다. 그런데 hwclock으로 하드웨어 시간을 보면 오히려 시간이 빠르다. 아까 Ubuntu 설명할 때 언급했던 부분이 이런 부분이다. 이 과정 역시 Ubuntu와 동일하다. 리눅스 시스템의 시간이 맞게 설정되어 있으니 이번엔 먼저 하드웨어 시간을 리눅스 시스템에 맞춰보자. 사용법은

    hwclock -w

    리눅스 시스템 시간에 맞춰서 하드웨어 시간이 변경되었다.

    반대로 리눅스 시스템의 시간을 하드웨어 시간에 맞추는 경우는

    hwclock -s

    리눅스 시스템 시간이 하드웨어 시간에 잘 맞춰졌음을 확인할 수 있다.

    • 참고 : 하드웨어 시간을 수동으로 설정할 수도 있다. 이 역시 root에서 진행해야 하며 명령어는

    hwclock –set –date=”2018-08-14 11:02:34”

    잘 설정이 되었다.




참고 사이트 :

  • http://frody.tistory.com/106
  • http://blog.cafe24.com/1929

이전글: IP란? 다음글: Pod란?