서버에서 정확한 시간은 매우 중요하다.
글로벌 서비스를 한다면 세계 기준시인 UTC(GMT)로 설정해서 운영해야겠지만, 로컬 서비스를 한다면 그 지역에 맞게 시간을 맞춰서 운영하는게 좋다.
1. CentOS 시간대 변경
1) 원래 시간 정보를 복사해놓고, 필요는 없지만 만약을 위해..
[root@Mapoo-Server ~] # cp /etc/localtime /etc/localtime.ori
2) 원하는 시간대의 정보를 복사해온다. 한국은 Seoul 임.(싱볼릭 링크가능)
[root@Mapoo-Server ~] # cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime
cp: overwrite `/etc/localtime'? Y
3) 시간 확인
[root@Mapoo-Server ~] # date
Mon Nov 10 10:35:50 JST 2011 <--- 바뀜
4) 시간 동기화
[root@Mapoo-Server ~] # rdate -s time.bora.net && clock -w
-> rdate 명령어로 시간서버로 부터 시스템 시간을 맞추고, bios 시계를 거기에 맞춤
2. 리눅스 시간이 메인보드의 BIOS 시간과 차이가 날 경우 - CentOS 6.x 에서 나타나는 증상으로.
date와 hwclock --show 명령어를 통해 볼때 시스템(OS) 시각이 15시간 전으로 표기될때
1) 시스템 시간을 BIOS 기준으로 맞춤.
[root@Mapoo-Server ~] # hwclock -s( 바이오스 시간을 시스템 시간으로 맞춤은 : # hwclock -w)
2) 시간 확인
[root@Mapoo-Server ~] # date --> 제대로 시각이 표기된다.
3. 위와 같이 해도 시간이 차이나는 경우.
1) utc 설정 변경
[root@Mapoo-Server ~]# cat /etc/sysconfig/clock
# The ZONE parameter is only evaluated by system-config-date.
# The timezone of the system is defined by the contents of /etc/localtime.
ZONE="Asia/Seoul"
UTC=true ---> 이 부분을 true에서 false로 변경 한다.
ARC=false
2) 시간 동기화
[root@Mapoo-Server ~] # rdate -s time.bora.net && clock -w
3) 확인
[root@Mapoo-Server ~] # date --> 제대로 시각이 표기된다.
4. 참고사항
1) UTC란?
UTC와 GMT(그리니치 천문대 시간)는 같은 시간 개념으로 세계 기준시이다.
2) 부팅시 시간 동기화
서버가 부팅 후 시간서버와 동기화 하기전엔 메인보드 바이오스 시간을 이용하여 시스템 시간이 설정된다.
만약 바이오스 시간이 잘못된 경우엔 서비스에 지장을 초래할 수 있다.
따라서 부팅시 바로 표준시 서버와 동기화 되도록 /etc/rc.local 과 같은 시작 스크립트에 시간 동기화 명령을 등록해 둔다.
[root@Mapoo-Server ~] # vi /etc/rc.local
/usr/bin/rdate -s -u time.bora.net && /sbin/clock -w
--> -u 는 udp 옵션이다. 만약 -u 옵션을 안주면 시간서버와 TCP로 연결이되어 부팅 지연이 발생할 수 있으므로 udp 옵션을 준다.
3) 시간설정 변경
system-config-data 명령어를 통해서도 시간대와 UTC 선택이 가능하다.