본문 바로가기

IT/리눅스

리눅스시스템의 날짜와 시간관리 hwclock, date, rdate

리눅스시스템의 날짜와 시간관리

hwclock, date, rdate

 

 

 

안녕하세요. 지토우에요.

지금 막 세미나 하고 온 차라 심장이 덜덜덜...

그래도 이번 것은 간단하고 쉬운거니까요.

다들 재밌게 해봅시다 ^_^

 

 

 

1. 리눅스시스템의 날짜와 시간관리 개념

 

 리눅스 시스템에는 두 가지 개념의 시간이 존재합니다.

하나는 하드웨어 시간, 다른 하나는 운영체제 시간인데요.

 

 하드웨어의 시간은 메인보드에 있는 CMOS의 시간(ROM-BIOS에서 인식하고 있는 시간)을 의미하는 것으로

hwclock 명령어로 확인하고 재설정합니다.

 

 운영체제의 시간은 리눅스시스템(리눅스커널)에서 인식하고 있는 시간을 의미하는 것으로

date 명령어로 확인하고 재설정 할 수 있습니다.

 

 이번 시간에는 hwclock , date , rdate 사이의 정확한 개념을 배워보는 시간입니다.

 

 리눅스 시스템은 새로 부팅을 하거나 재부팅을 할 때에 하드웨어의 CMOS 에서 날짜 및 시간 정보를 가져와서 그 값을 그대로 인식합니다.

즉, 리눅스커널이 인식하고 있는 운영체제의 시간은 하드웨어의 시간값에 종속적인데요.

만약 CMOS의 시간이 틀리게 설정되어 있다면 부팅 후 커널이 인식하는 시간값도 그대로 틀리게 인식되어 있겠지요?

물론 해결방법도 있으므로, 지금부터는 그것에 대해 알아봅시다.

 

 

hwclock 명령어는 하드웨어의 시간을 관리하고

date 명령어는 운영체제의 시간을 관리합니다.

 

즉, hwclock은 CMOS의 시각을 설정 및 확인할 수 있는데요.

하드웨어의 시간을 가져와서 운영체제의 시간을 재설정 할 수도 있습니다.

또, 운영체제 시간을 가져와서 하드웨어의 시간을 재설정할 수도 있습니다.

 

date 명령어는 단순히 시스템(리눅스 운영체제) 즉 운영체제의 시각을 설정하는 것이며

서버의 CMOS 시각을 설정할 수는 없습니다.

리눅스시스템이 부팅될 때에는 CMOS 시각이 운영체제에 넘겨져서 부팅시 초기시각으로 설정되기 때문입니다.

 

따라서, hwclock 명령어로 CMOS 시각을 정확히 설정해둬야 합니다.

 

 

* 하드웨어 시간과 운영체제 시간의 구분*

 

구분 

하드웨어 시간 

운영체제 시간 

의미 

메인보드에 있는 CMOS의 시간

ROM-BIOS에서 인식하고 있는 시간 

리눅스 시스템의 시간

리눅스 커널의 시간 

구분 

하드웨어적인 의미의 시간 

소프트웨어적인 의미의 시간 

관계 

운영체제(리눅스)가 부팅 시 마다 하드웨어의 시간을 가져와서 운영체제에 적용함.

운영체제의 시간이 하드웨어의 시간에 종속됨

변경방법 

hwclock 

date 

 

 


 

 

 

2. 시간 확인

 

하드웨어의 시간을 확인해 볼까요?

 

 

이번에는 운영체제의 시간을 확인해봅시다.

 

 

 

 


 

 

 

 

3. hwclock으로 하드웨어 시간과 운영체제 시간 재설정하기

 

 

hwclock -s 옵션을 사용해 CMOS 의 시간을 가져와 현재 운영체제의 시간을 재설정했습니다.

결과적으로 둘의 시간값이 동일해졌습니다.

 

 

 


 

 

 

4.  원격 타임 서버와 날짜시간 동기화 시키기

 

각 나라 및 지역에는 타임서버라는 것이 있습니다.

그 서버의 시간값과 동기화를 시키면 애써 DATE 명령어로 날짜시간을 재설정하지 않아도 자동으로 설정하도록 할 수 있습니다.

 

rdate 라는 명령어를 사용하는 것인데요.

지정한 원격타임서버의 시간과 현재 시스템의 운영체제 시간을 동기화하는 작업을 합니다.

즉 지정한 원격지의 타임서버로부터 날짜시간정보를 받아와 보여주거나 날짜시간을 재설정하는 역할을 하는 것이지요.

 

rdate -p 명령어를 사용하면

지정한 원격지의 타임서버에서 시간정보를 가져와서 보여줍니다.

 

rdate -s 명령어를 사용하면

원격타임서버와 동기화해줍니다.