Linux에서 시간 동기화하기


시간 동기화란 표준시간을 가지고 있는 서버와 현재 운영중인 서버 또는 PC와 시간을 동일하게 맞추는 작업을 말한다.


보통의 경우 시간 동기화는 별로 쓸일이 없다.

하지만 서버를 관리하는 입장에서는 시간 동기화란 중요한 포인트가 되기도 한다.

이러한 서버들(또는 실시간이 중요한 장비)을 위해서 정확한 시간을 제공해주는 서버들이 있다.

보통은 NTP(Network Time Protocol) 서버라고 부르는 Time 서버이다.

물론 우리나라에도 몇 군데 운영중인 서버들이 있다.

국가에서 운영하는 곳도 있고 민간기업(주로 네트워크 회사)에서 공익 차원에서 운영을 하는 곳도 있다.


여기서 한가지 주의사항이 있다. 테스트를 위해서 한번씩 또는 한달에 한번 정도 접속을 실행을 하는 것은 상관없지만 하루에 몇 번씩 심지어는 몇 십번에서 몇 백번을 접속하는 사람들이 있다. 이렇게 자주 여러번 접속할 정도의 정확성이 필요하다면 자체적으로 NTP 서버를 운영할 것을 권장한다. 앞에서도 말했지만 공익을 위해서 NTP서버를 공개한 것이지 사적인 이익을 추구하는데 이용당하기 위해서 공개한 것은 아니란 점을 알아두었으면 한다. (그리고 요즘 PC들은 성능이 좋아서 시간이 틀어지는 일도 별로 없다.)

이렇게까지 이야기를 강조하는건 예전에 비슷한 사건이 있었기 때문이다.

NTP서버가 아닌 인공위성 사진을 배포하는 사이트였다. 개인이 운영하는 사이트였고 원래 해외 서버에서 이미지를 무료로 제공했었지만 당시 서버 네트워크 상태가 나빠서 상당한 시간이 소요되었었다. 따라서 사이트를 운영하시는 분이 좋은 마음으로 아는 사람들에게만 사이트에서 받아갈 수 있는 길을 만들어 놓으셨다.

그런데 어떤 개념없는 사람이 이걸 공개적인 게시판에 올려놓았고 사람들이 한꺼번에 몇백명이 접속을 시도했으며 심지어는 몇 분에 한번씩(이미지는 4시간에 한번 갱신됨.) 자동으로 받아지도록 스크립트를 작성해서 돌리기까지 했었다.

해당 사이트는 트래픽 초과와 DDOS 원인이라는 오해까지 받으며 한달가량 막혔었고 이후 사이트 관리자분이 사진 전송을 중단하면서 사건은 끝났던 것으로 기억난다.

사람이라면 이렇게까지 이야기했으니 하루에 몇 번씩 접속하는 우둔함은 없을줄로 믿는다.


이제는 실제 어떻게 동작시키는지 써보겠다.


Linux에서 NTP서버를 통해서 시간을 동기화하는 방법은 시스템을 건드려야 하기에 root 유저의 권한이 필요하다.

따라서 'su -'을 이용해 root 유저로 로그인해서 작업하던가 아니면 좀더 안전하게 'sudo'를 이용하여 작업하는게 좋다.


필요한 프로그램은 'rdate'라는 프로그램이다. 프로그램이 없다면 설치부터한다.

Ubuntu 계열은 apt를 이용하여 설치한다.


$ sudo apt install rdate 


Redhat 계열은 yum을 이용한다.


$ yum -y install rdate 


사용방법은 간단하다.


$ sudo rdate -s time.server.url


서버 주소는 'https://zetawiki.com/wiki/공용_NTP_서버_목록' 에서 확인 가능하다.

위 사이트에서 적절한 사이트를 골라서 사용하면 된다.


참고로 MS-Windows에서도 시간을 동기화시키는 방법이 있다.

MS-Windows용 시간 동기화 프로그램은 한국표준과학연구원 사이트의 '표준이야기' 속의 '표준시각 맞추기' 항목에서 배포하고 있다. 그것을 이용하면 MS-Windows에서도 쉽게 시간 동기화가 가능하다.

참고로 MS-Windows용 프로그램은 '관리자'권한으로 실행해야한다. 위에서도 말했지만 시스템을 건드리는 부분이라 일반유저가 접근할 수 없다. 따라서 설치한 프로그램에서 오른쪽 마우스 버튼을 눌러 '관리자'권한으로 실행해야만 동기화가 된다.


'Linux' 카테고리의 다른 글

Signal 정리  (0) 2018.01.08
개발자 환경 구성?  (0) 2017.12.24
Systemd을 이용한 서비스 등록방법  (0) 2017.12.08
Local 컴퓨터에서 비밀번호를 잊어버렸을 때  (0) 2017.08.04
에디터 없이 파일 생성하기  (0) 2017.08.04
Posted by codebank
,