3장. 날짜 및 시간 구성
최신 운영 체제는 다음 두 가지 유형의 시계를 구분합니다.
- 실시간 클럭 (RTC)은 일반적으로 하드웨어 클럭 (일반적으로 시스템 보드의 통합 회로)으로 알려져 있으며 컴퓨터가 종료될 때 실행되는 운영 체제의 현재 상태와 완전히 독립적입니다.
- 커널에 의해 유지 관리되고 초기 값은 실시간 시계를 기반으로하는 시스템 클럭 (소프트웨어 클럭)입니다. 시스템이 부팅되고 시스템 시계가 초기화되면 시스템 클럭은 실시간 시계와 완전히 독립적입니다.
시스템 시간은 항상UTC( 협정 세계시 )로 유지되며 필요에 따라 애플리케이션에서 현지 시간으로 변환됩니다. 현지 시간은 일광 절약 시간 (DST)을 고려하여 현재 표준 시간대의 실제 시간입니다. 실시간 시계는 UTC 또는 현지 시간을 사용할 수 있습니다. UTC가 권장됩니다.
Red Hat Enterprise Linux 7은 시스템 날짜 및 시간에 대한 정보를 구성하고 표시하는 데 사용할 수 있는 세 가지 명령줄 툴을 제공합니다.
-
timedatectl
유틸리티는 Red Hat Enterprise Linux 7의 새로운 기능이며systemd
의 일부입니다. -
기존
date
명령입니다. -
하드웨어 시계에 액세스하기 위한
hwclock
유틸리티입니다.
3.1. timedatectl
명령 사용
timedatectl 유틸리티는 systemd
시스템 및 서비스 관리자의 일부로 배포되며 시스템 클럭의 구성을 검토하고 변경할 수 있습니다. 이 도구를 사용하여 현재 날짜와 시간을 변경하거나 시간대를 설정하거나 원격 서버와 시스템 클럭의 자동 동기화를 활성화할 수 있습니다.
현재 날짜 및 시간을 사용자 지정 형식으로 표시하는 방법에 대한 자세한 내용은 3.2절. “날짜 명령 사용” 도 참조하십시오.
3.1.1. 현재 날짜 및 시간 표시
시스템 및 하드웨어 시계 구성에 대한 자세한 정보와 함께 현재 날짜와 시간을 표시하려면 추가 명령줄 옵션 없이 timedatectl
명령을 실행합니다.
timedatectl
그러면 로컬 및 범용 시간, 현재 사용되는 표준 시간대,NTP
(Network Time Protocol) 구성의 상태, DST와 관련된 추가 정보가 표시됩니다.
예 3.1. 현재 날짜 및 시간 표시
다음은 NTP
를 사용하여 시스템 클럭을 원격 서버와 동기화하는 시스템에서 timedatectl
명령의 출력 예입니다.
~]$ timedatectl Local time: Mon 2016-09-16 19:30:24 CEST Universal time: Mon 2016-09-16 17:30:24 UTC Timezone: Europe/Prague (CEST, +0200) NTP enabled: no NTP synchronized: no RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2016-03-31 01:59:59 CET Sun 2016-03-31 03:00:00 CEST Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2016-10-27 02:59:59 CEST Sun 2016-10-27 02:00:00 CET
chrony
또는 ntpd
의 상태에 대한 변경 사항은 timedatectl
로 즉시 알 수 없습니다. 이러한 툴의 구성 또는 상태가 변경되면 다음 명령을 입력합니다.
~]# systemctl restart systemd-timedated.service
3.1.2. 현재 시간 변경
현재 시간을 변경하려면 쉘 프롬프트에 root
로 다음을 입력합니다.
timedatectl
set-time
HH:MM:SS
HH 를 1시간, MM 을 1분으로 바꾸고, SS 를 1초로 바꾸면 모두 두 자리형으로 입력됩니다.
이 명령은 시스템 시간과 하드웨어 클럭을 모두 업데이트합니다. 그 결과 date --set
및 hwclock --systohc
명령을 모두 사용하는 것과 유사합니다.
NTP
서비스가 활성화되면 명령이 실패합니다. 서비스를 일시적으로 비활성화하려면 3.1.5절. “원격 서버와 시스템 Clock 동기화” 을 참조하십시오.
예 3.2. 현재 시간 변경
현재 시간을 11:26 p.m.로 변경하려면 root
로 다음 명령을 실행하십시오.
~]# timedatectl set-time 23:26:00
기본적으로 시스템은 UTC를 사용하도록 구성됩니다. 로컬 시간에 클럭을 유지하도록 시스템을 구성하려면 set-local-rtc
옵션을 root
로 timedatectl
명령을 실행합니다.
timedatectl
set-local-rtc
boolean
로컬 시간에 클럭을 유지하도록 시스템을 구성하려면 부울 을 yes
(또는, y
,true
,t
또는 1
)로 바꿉니다. UTC를 사용하도록 시스템을 구성하려면 부울 을 no
(또는, alternatively, n
,false
,f
또는 0
)로 바꿉니다. 기본 옵션은 없습니다
.
3.1.3. 현재 날짜 변경
현재 날짜를 변경하려면 쉘 프롬프트에 root
로 다음을 입력합니다.
timedatectl
set-time
YYYY-MM-DD
octets을 4자리 연도로 바꾸고, MM 을 두 자리 월 한 달로, DD 를 월의 두 자리 날짜로 바꿉니다.
현재 시간을 지정하지 않고 날짜를 변경하면 시간을 00:00:00으로 설정합니다.
예 3.3. 현재 날짜 변경
현재 날짜를 2017년 6월 2일로 변경하고 현재 시간(11:26 p.m.)을 유지하려면 root
로 다음 명령을 실행합니다.
~]# timedatectl set-time "2017-06-02 23:26:00"
3.1.4. 시간대 변경
사용 가능한 모든 시간대를 나열하려면 쉘 프롬프트에서 다음을 입력합니다.
timedatectl
list-timezones
현재 사용된 시간대를 변경하려면 root
로 입력합니다.
timedatectl set-timezone time_zone
time_zone 을 timedatectl list-timezones
명령으로 나열된 값으로 교체합니다.
예 3.4. 시간대 변경
현재 위치와 가장 가까운 시간대를 식별하려면 list-timezones
명령줄 옵션과 함께 timedatectl
명령을 사용합니다. 예를 들어 유럽의 사용 가능한 모든 시간대를 나열하려면 다음을 입력합니다.
~]# timedatectl list-timezones | grep Europe
Europe/Amsterdam
Europe/Andorra
Europe/Athens
Europe/Belgrade
Europe/Berlin
Europe/Bratislava
…
시간대를 유럽/
파그로 변경하려면 root
로 입력합니다.
~]# timedatectl set-timezone Europe/Prague
3.1.5. 원격 서버와 시스템 Clock 동기화
이전 섹션에서 설명하는 수동 조정과 달리, timedatectl
명령을 사용하면 NTP
프로토콜을 사용하여 원격 서버 그룹과 시스템 클럭의 자동 동기화를 활성화할 수도 있습니다. NTP를 활성화하면 설치된 서비스에 따라 chronyd
또는 ntpd
서비스를 활성화합니다.
NTP
서비스는 다음과 같이 명령을 사용하여 활성화 및 비활성화할 수 있습니다.
timedatectl
set-ntp
boolean
시스템에서 시스템 클럭을 원격 NTP
서버와 동기화하도록 활성화하려면 부울 을 yes
(기본값)로 교체합니다. 이 기능을 비활성화하려면 부울 을 no
로 바꿉니다.
예 3.5. 원격 서버와 시스템 Clock 동기화
원격 서버를 사용하여 시스템 클럭의 자동 동기화를 활성화하려면 다음을 입력합니다.
~]# timedatectl set-ntp yes
NTP
서비스가 설치되지 않은 경우 명령이 실패합니다. 자세한 내용은 18.3.1절. “chrony 설치”를 참조하십시오.