시간동기화 하기

devvace ㅣ 2017. 11. 5. 17:44

# 개요

make : warning : Clock skew detected. Your build may be incomplete

타 사의 API를 Debian OS에서 테스트 중 발생한 에러이다.

원인은 시스템의 시간과 컴파일하고자 하는 소스파일의 시간이 맞지 않는 경우 발생한다고 한다.

이 에러가 발생하지 않더라도 시간 동기화가 필요한 상황에 사용하면 된다.

 

# 해결

먼저 다음 명령어를 사용해서 외부서버의 시간(네트워크 타임)과 현재 시스템의 시간을 동기화 한다.

> sudo ntpdate -s time.bora.net

※ 참고

참고로, ntpdate 라는 패키지가 없을 수도 있는데 없다면 다음 명령어를 사용하자.

> sudo apt-get -y install ntpdate

 

만약 그런 패키지가 없다는 에러가 발생하면 다음 명령어를 사용하고 다시 시도해보자.

> sudo apt-get update

 

다음은, 현재 시스템 시간을 하드웨어 클럭(바이오스의 시간)으로 동일하게 맞춰준다.

> sudo hwclock --systohc

 

마지막으로, 각 소스코드 파일들의 엑세스 및 수정시간을 현재시간으로 업데이트 한다.

> touch *

다시 컴파일 시도하면 해결될 것이다.


 

[18.01.29 추가]

만약 오류는 해결되었는데 현재 시간이 맞지 않을 때는 다음과 같이 실행해보자.

> cd /etc
> sudo rm localtime
> sudo cp /usr/share/zoneinfo/Asia/Seoul localtime
> sudo apt-get install ntp
> date

[18.09.11 추가]

1월 29일에 추가한 내용대로 했는데 안 된다면 아래 방법을 시도해보자.

# rc.local 편집해서 부팅시 시스템 시간 동기화하는 명령 절차넣기
> vim /etc/rc.d/rc.localexport 
env TZ=KST-09:00:00ntpdate -s time.bora.nethwclock --systohc

그래도 안 된다면? 다음을 시도해보자.

# Asia 폴더 있는지 확인
> ls /usr/share/zoneinfo

# Seoul 폴더 있는지 확인
> ls /usr/share/zoneinfo/Asia

# 심볼릭 링크 걸기
> ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# 확인하기
> date

 

# URL 동기화 문제(CentOS 7)

CentOS 7의 경우,

> yum -y install rdate
> rdate -s time.bora.net

위 URL로 동기화가 안 될 수도 있다, 그럴 땐 rdate -s [도메인 이름]에 아래와 같이 다른 도메인으로 넣고 진행하면 된다.

- zero.bora.net

- time2.kriss.re.kr

- ntp.kornet.net

- ntp.postech.ac.kr