rdate
[시간 관리]
01. clock
CMOS의 시간을 조절하는 명령어이다.
<사용방법>
clock [옵션]
<옵션>
-u : CMOS clock이 Universal Time 으로 지정되게 한다.
-r : CMOS clock을 읽어 표준 출력으로 결과값을 보여준다.
-w : 시스템 시간값을 읽어 CMOS clock에 쓴다.
-s : CMOS clock을 읽어 시스템 시간을 지정한다.
-a : CMOS clock을 읽어 시스템 시간을 지정하고, 시스템 오류에 대비한 수정된 시간을 적용하고, 다시 그 값을 CMOS clock에 쓴다. 이 옵션은 clock 바꾸는 방법을 /etc/adjtime 파일에서 읽어서 사용한다. 이 파일에는 3가지 숫자가 지정되어 있다.
[root@localhost /]# cat /etc/adjtime
-2929.666756 1226569481 0.000000
1226569481
UTC
첫번째 숫자는 하루의 총 초(second), 예를 들어, 매일 원래의 시간보다 5초씩 빠르게 clock이 움직이면, 이 첫번째 숫자는 -5.0 으로 적혀져 있을 것이다.
두번째 숫자는 clock 명령이 1970년 1월1일 이후로 마지막으로 사용된 날짜 사이의 총 날짜수이다.
세번째 숫자는 마지막 적용에서 사용한 초의 남겨진 부분이다.
(01) CMOS 시간 확인하기
[root@localhost /]# clock -r
2008년 11월 13일 (목) 오후 07시 01분 06초 -0.058456 seconds
(02) 리눅스 시스템 시각으로 CMOS 시간 설정하기
[root@localhost /]# clock -r
2008년 11월 13일 (목) 오후 07시 01분 06초 -0.058456 seconds
[root@localhost /]#
[root@localhost /]# date
2008. 11. 13. (목) 18:57:34 KST
[root@localhost /]# clock -w
[root@localhost /]#
[root@localhost /]# clock -r
2008년 11월 13일 (목) 오후 06시 57분 47초 -0.228841 seconds
(03) CMOS 시간으로 리눅스 시스템 시간 설정하기
[root@localhost /]# date
2008. 11. 13. (목) 18:57:58 KST
[root@localhost /]# clock -r
2008년 11월 13일 (목) 오후 06시 59분 05초 -0.637427 seconds
[root@localhost /]# clock -s
[root@localhost /]#
[root@localhost /]# date
2008. 11. 13. (목) 18:59:15 KST
시스템의 시간과 날짜를 출력하거나 설정할 수 있다. 아무런 옵션 없이 date를 실행하면 현재의 시간과 날짜를 출력한다.
<사용방법>
date [옵션] [+포맷] [날짜]
<옵션>
-d, --date date : 지정한 date 값과 같이 시간과 날짜를 보여준다.
-f, --file=datedate : 지정한 날짜 파일에서 각각의 줄에 대한 날짜를 보여준다.
-l(소문자 엘), --iso-8610 [=TIMESPEC] : ISO-8610 포맷으로 보여준다. 만일 timespec을 지정하였다면 날짜나 시, 분, 초에 대한 값 중 하나를 보여준다.
-r, --reference=FILE : 지정한 파일이 마지막으로 수정된 날짜를 보여준다.
-R, --rfc-822 : RFC-822 데이트 문자열로 보여준다.
-s, --set=STRING : 지정한 string으로 시간을 맞춘다.
--version : 버전 정보를 보여준다.
02. 시스템의 시간을 출력하기
다양한 형식으로 현재 시스템의 시간을 출력하는 방법에 대해 알아보자.
현재 시스템의 시간을 출력하기
[root@localhost /]# date
2008. 11. 13. (목) 19:03:58 KST
현재 시스템의 시간을 hh:mm:ss 형식으로 출력하기
[root@localhost /]# date +%T
19:04:17
현재 시스템의 요일을 완전한 이름으로 출력하기
[root@localhost /]# date +%A
목요일
현재 시스템의 시간을 YYYY-MM-DD 형식으로 출력하기
[root@localhost /]# date +%Y-%m-%d
2008-11-13
현재 시스템의 시간을 YYYY-MM-DD(a) 형식으로 출력하기
[root@localhost /]# date +%Y-%m-%d₩(%a₩)
2008-11-13(목)
※ 시간 설정 하기
date 명령을 이용하여 시간을 설정해 보자.
<사용방법>
date MMDDhhmmYY
MM : 월
DD : 일
hh : 시간
mm : 분
YY: 년도
[root@localhost /]# date 0728170207
2007. 07. 28. (토) 17:02:00 KST
[root@localhost /]# date
2007. 07. 28. (토) 17:02:09 KST
03. rdate
rdate는 원격지의 타임서버로부터 날짜와 시간 정보를 받아와, 시스템에 설정하는 명령어이다.
<사용방법>
rdate [옵션] 타임서버
<옵션>
-p : 타임서버의 시간을 출력한다.
-s : 시스템의 시간을 타임서버의 시간으로 변경한다.
◆ 시간 동기화
rdate를 이용해 표준시간으로 변경해 보자.
[root@localhost /]# date
2007. 07. 28. (토) 17:03:19 KST
[root@localhost /]# rdate -s time.bora.net
[root@localhost /]# date
2008. 11. 14. (금) 02:47:05 KST
시스템의 시간이 타임서버와 동기화 되었다. 이것을 CMOS에 기록하자.
[root@localhost /]# clock -w
시간 동기화 작업을 하루에 한번 정도는 실행해 주는 것이 좋다. 관리자가 일일이 작업을 해도 되지만, cron을 이용하여 일정한 시간에 주기적으로 실행되게 설정해 놓는 것이 좋다.
[root@localhost /]# crontab -e
00 01 * * * rdate -s time.bora.net && clock –w
[root@localhost /]# crontab -l5
00 01 * * * rdate -s time.bora.net && clock -w
위는 매일 새벽 1시 마다 동기화 작업을 실행하게 설정한다는 것이다.
본인도 실무에서 운영하는 서버는 99% 위와 같이 설정을 해 놓는다.
이유는 질문하세요! ^_ ___^;