강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

시스템 날짜, 시간을 확인하고 설정하는 date명령어의 실무활용

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

시스템 날짜, 시간을 확인하고 설정하는 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-0100: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명령어와 함께 사용했을 때 정확한 시스템 시간설정을 할 수 있습니다.   

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,076 명
  • 현재 강좌수 :  36,001 개
  • 현재 접속자 :  563 명