Linux
시간동기화 하기
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