시스템 날짜, 시간을 확인하고 설정하는 date명령어의 실무활용
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,232 조회
- 0 추천
- 목록
본문
시스템 날짜, 시간을 확인하고 설정하는 date명령어의 실무활용
리눅스에는 시간의 개념이 2가지 있습니다.
즉, 하드웨어의 시간과 운영체제의 시간이 그것입니다.
하드웨어의 시간은 CMOS의 시간(ROM-BIOS에서 인식하고 있는 시간)을 의미하는 것으로 hwclock명령어로 확인하고 재설정합니다.
반면 운영체제의 시간은 리눅스시스템(리눅스커널)에서 인식하고 있는 시간을 의미하는 것으로서 date명령어로 확인하고 재설정할 수 있습니다.
date명령어는 현재 서버(운영체제)의 날짜와 시간을 확인하거나 설정할 수 있는 명령어입니다.
가끔씩 서버의 날짜와 시간이 조금씩 틀리게 되어 있는 경우가 있습니다.
이런 경우에 이 명령어를 이용하여 현재서버의 날짜와 시간을 확인하고 정확하게 설정하는 작업을 하기 위해 사용합니다.
이 명령어는 rdate와 비교를 하시면 좀 더 정확한 이해를 할 수 있습니다.
리눅스 서버는 새로 부팅을 하거나 재부팅을 할 때에는 하드웨어의 CMOS에서 시간정보를 가져와서 사용합니다.
따라서 CMOS의 시간이 틀릴 경우에 date명령어로 시간정보를 맞추었다 하더라도 시스템을 재부팅하면 시간정보가 다시 하드웨어의 시간에 맞추어져지게 됩니다.
즉, date명령어에서 무엇보다 중요한 것은 hwclock명령어와의 정확한 구분에 있다고 할 수 있습니다.
즉, date명령어는 운영체제(리눅스, 커널자체)의 시간을 설정하는 명령어라고 한다면 hwclock명령어는 서버자체(하드웨어)의 CMOS(ROM-BIOS)의 시간을 설정하고 적용하는 명령어입니다.
따라서 필자는 여기서 hwclock명령어에 대해서 간략하게 설명하고 있습니다.
하지만 앞서 말씀드렸듯이 hwclock의 자세한 설명은 반드시 이 책의 hwclock편을 보시기 바랍니다.
명령어위치 : /bin/date
date로 날짜와 시간을 새롭게 설정할 때에는 "date MMDDhhmm[[CC]YY][.ss]" 와 같은 형식을 사용하면 됩니다.
그리고 각 인수들은 아래와 같은 의미를 가지고 있다.
서버의 날짜와 시간을 새롭게 설정할 수 있는 권한은 오직 root만이 할 수 있습니다.
MM 월(01~12)
DD 일(01~31)
hh 시(00~23)
mm 분(00~59)
CC 연도의
앞 두 숫자 (선택적, 예:
20)
YY 연도의
뒤 두 숫자 (선택적, 예:
13)
ss 초 (선택적, 예: 00~59)
또한 date는 지정된
형식에 맞는 출력을 할 수 있습니다.
즉 형식에 맞는 출력을 하고자 한다면 "%"지시자를 사용하여 아래 설정된 문자를 앞에 붙여 사용합니다.
시간 필드:
%H 시 (00..23, 즉, 2자리 숫자를 사용하여 24시간 단위를 사용함)
%I 시 (01..12, 즉, 2자리 숫자를 사용하여 12시간 단위를 사용함)
%k 시 ( 0..23, 1자리 또는 2자리 숫자를 사용하여 24시간 단위를 사용함)
%l 시 ( 1..12, 1자리 또는 2자리 숫자를 사용하여 12시간 단위를 사용함))
%M 분 (00..59)
%p 로케일의 AM 또는 PM
%r 시간, 12-시간제 (hh:mm:ss [AP]M)
%s 1970-01-01 00:00:00 UTC (비표준 확장기능)로 부터 경과된 초
%S 초 (00..61)
%T 시간, 24-시간 (hh:mm:ss)
%X 로케일에서 정의한
시간 표현(%H:%M:%S)
%Z 시간대(에, EDT), 시간대를 결정할 수 없을 때는 아무 값도 출력하지 않는다.
날짜 필드:
%a 로케일의 약식
요일 이름 (Sun..Sat)
%A 로케일의 완전한
요일 이름, 가변 길이 (Sunday..Saturday)
%b 로케일의 약식 월
이름 (Jan..Dec)
%B 로케일의 완전한
월 이름, 가변 길이 (January..December)
%c 로케일의 날짜와
시간 (Sat Nov 04 12:02:33 EST 1989)
%d 월 중 일 (01..31)
%D 날짜 (mm/dd/yy)
%h %b 와 동일
%j 연 중 일 (001..366)
%m 월 (01..12)
%U 연 중 주 번호, 일요일을 주의 첫번째 날로 생각 (00..53)
%w 요일 번호 (0..6), 0 은 일요일
%W 연 중 주 번호, 월요일을 주의 첫번째 날로 생각 (00..53)
%x 로케일의 날짜 표현식 (mm/dd/yy)
%y 연 중 일의 마지막
두 숫자 (00..99)
%Y 연 (1970...)
또한 date는 다음과 같은 옵션을 이용하여 다양한 출력형식을 표현할 수 있습니다.
-d datestr, --date datestr
위의 옵션은 datestr에
지정된 형식대로 출력을 하게 됩니다.
쉬운 예부터 보도록 하겠습니다.
[root@su249 ~]# date 2011. 12. 30. (금) 01:51:01 KST [root@su249 ~]# |
위의 예는 운영체제의 현재 날짜와 시간 및 요일을 확인한 것입니다.
다음은 운영체제의 현재 날짜와 시간을 새롭게 재설정한 것입니다.
[root@su249 ~]# date 091005012013 2013. 09. 10. (화) 05:01:00 KST [root@su249 ~]# [root@su249 ~]# date 2013. 09. 10. (화) 05:01:01 KST [root@su249 ~]# |
위의 예에서 새롭게 설정한 날짜와 시간은 2013년 09월 10일 05시 01분입니다.
그리고 date라는 명령어로 새롭게 설정된 날짜와 시간을 다시 한번 확인한 것입니다.
그리고 아래의 예는 현재부터 5일전의 날짜와 시간정보를 확인하고자 할 때 사용하는 옵션입니다.
[root@su249 ~]# date --date '5 days ago' 2013. 09. 05. (목) 05:02:41 KST [root@su249 ~]# |
그리고 다음의 예는 5개월하고 3일 후의 날짜와 시간정보를 출력하는 예 입니다.
[root@su249 ~]# date --date '5 months 3 day' 2014. 02. 13. (목) 05:03:00 KST [root@su249 ~]# |
그리고 다음은 올해 크리스마스 날짜를 출력하는 예입니다.
[root@su249 ~]# date --date '25 Dec' +%j 359 [root@su249 ~]# |
즉, 이와 같이 date명령어로 현재 시스템의 시간을 설정할 수 있으며 또한 원하는 날짜정보를 확인 할 수 있습니다.
앞서 말씀 드렸지만 date명령어는 rdate명령어와 hwclock명령어와 함께 사용했을 때 정확한 시스템 시간설정을 할 수 있습니다.
관련자료
-
이전
-
다음