현재 위치 - 인적 자원 플랫폼망 - 미니프로그램 개발 - Linux 시스템에서 NTP 동기화 요청을 여는 방법
Linux 시스템에서 NTP 동기화 요청을 여는 방법
Linux의 Glibc는 미리 컴파일한 많은 시간대 파일을 제공하며, 기본적으로 대부분의 국가와 도시를 포함하는 /usr/share/zoneinfo 디렉터리에 배치됩니다.

# ls -F /usr/share/zoneinfo/

아프리카/칠레/아이슬란드공장/멕시코/포식스/유니버셜

미국/ CST6CDT GB 인도/중동/포식스규칙 미국/

남극/쿠바 GB-아이레 이란 MST 중화인민공화국 UTC

북극/ EET GMT iso 3166 . 탭 아시아/이집트 GMT0 이스라엘 나바호 우/시수

대서양/아일랜드 GMT-0 자메이카 뉴질랜드 중화인민공화국 zone.tab

호주/ EST GMT+0 일본 NZ-CHAT 한국 줄루

브라질/. EST5EDT 그리니치 콰잘레인 태평양/싱가포르

캐나다/ 기타/ 홍콩 리비아 폴란드 터키

CET 유럽/ HST와 포르투갈 UCT

여기에서 해당 도시의 시간대 파일을 찾을 수 있습니다. 그런 다음 각 시간대의 현재 시간을 확인하려면 zdump 명령을 사용하면 됩니다.

# zdump Hong Kong

홍콩 금요일 2007년 7월 6일 홍콩 시간

그렇다면 시스템에 현재 시간대를 어떻게 알릴 수 있을까요? 여러 가지 방법이 있습니다. 첫 번째는 현지 시간대를 정의하는 /etc/localtime 파일을 수정하는 것입니다. usr/share/zoneinfo에서 시간대 파일을 찾아 /etc/localtime zone에 복사하거나 심볼릭 링크를 만들면 됩니다. 현재 시간대가 BST(즉, 영국 서머타임, UTC+65438+)라고 가정합니다.

#날짜

영국 서머타임 2007년 7월 5일 목요일 23:33:40

상하이가 위치한 시간대로 변경하려면 그렇게 하면 됩니다.

# ln-sf/usr/share/zoneinfo/POSIX/아시아/상하이/등/현지 시간

# 날짜

2007년 7월 6일 금요일 06:35:52 CEST

시간대가 변경됩니다(이에 따라 시간도 그에 맞게 조정됨). 두 번째 방법은 TZ 환경 변수의 값을 설정하는 것입니다. 많은 프로그램과 명령이 이 변수 값을 사용합니다. tz 값은 다양한 형식으로 설정할 수 있으며, 가장 쉽게 설정하는 방법은 tzselect 명령을 사용하는 것입니다.

# tzselect

...

TZ= 'Americas/Los Angeles'; export TZ

Tzselect를 사용하면 국가와 도시를 선택하고(이 단계는 생략합니다), 마지막으로 해당 TZ 변수의 값을 출력할 수 있습니다. 그런 다음 TZ 값을 설정하면 표준 시간대가 다시 변경됩니다.

#Date

2007년 7월 5일 목요일

이 두 예제를 통해 TZ 변수의 값이 /etc/localtime을 재정의한다는 것을 알 수 있습니다. 즉, TZ 변수가 정의되지 않으면 시스템에서 /etc/localtime을 사용하여 시간대를 결정합니다. 따라서 시간대를 영구적으로 수정하려면 /etc/에 TZ 변수 설정을 작성하면 됩니다. 이제 구성 파일에서 시간대를 설정하는 방법을 알았으니 Linux.3의 시간을 설정하는 방법을 살펴 보겠습니다. 실시간 시계(RTC)와 시스템 시계는 설정된 시간을 나타냅니다. 여기서 명확히 해야 할 또 다른 개념은 컴퓨터에는 두 개의 시계가 있다는 것입니다. 하나는 하드웨어 시계(RTC)라고 합니다. 마더보드에 내장된 특수 회로인 시스템 클럭이라는 또 다른 하드웨어 시계가 있습니다. 이 시계가 있기 때문에 일반적으로 전원을 끈 후에도 시간을 계산할 수 있습니다. 시스템 클럭은 운영 체제 커널에서 시간을 계산하는 데 사용하는 시계입니다. Linux에서 시스템을 켰을 때 1970년 1월 1일 00:00 UTC 시간부터 현재까지의 총 초 수 값은 하드웨어 시간과 동기화됩니다). 그리고 각각 독립적으로 실행됩니다. 따라서 두 시계가 독립적으로 실행되므로 시간이 지남에 따라 오류가 발생할 수밖에 없습니다. 예를 들어 보겠습니다.

# 날짜

영국 일광 절약 시간제 2007년 7월 6일 00:27:13

# hwclock - show

2007년 7월 6일 금요일 오전 10:27

hwclock - show 명령을 사용하면 컴퓨터의 하드웨어 시간(항상 현지 시간대인 ). 시스템 시간과 여전히 약간의 오류가 있음을 알 수 있으므로 동기화해야 합니다. 하드웨어 시간을 시스템 시간으로 설정하려면 다음 명령을 실행하면 됩니다.

# hwclock - hctosys

이렇게 하면 시스템 시간을 하드웨어 시간으로 설정할 수 있습니다.

# hwclock - systohc

그런 다음 하드웨어 시간을 설정하려면 부팅 시 BIOS에서 설정하거나 hwclock 명령을 사용할 수 있습니다.

# HW clock-set-date = " mm/DD/YYY hh:mm:ss"

시스템 시간을 변경하려는 경우 가장 쉬운 방법은 date 명령을 사용하는 것입니다.

# date -s "dd/mm/yyyy hh:mm:ss"

이제 시스템 및 하드웨어 시간을 설정하는 방법을 알았습니다. 하지만 문제는 이 두 시간이 허용되지 않는다면 어떻게 해야 할까요? 그렇다면 인터넷에서 정확한 시간을 제공할 수 있는 서버를 찾은 다음 프로토콜을 통해 시스템 시간을 동기화해야 합니다. 이 프로토콜이 바로 NTP입니다. 다음에 설명할 동기화는 시스템 시간과 웹 서버의 동기화를 의미합니다.4. NTP 서버를 설정하기 전 준비 사항. 실제로이 제목은 준비 작업을 설정하기 전에 "NTP 릴레이 서버"로 변경해야합니다. 컴퓨터 구성이 양호하기 때문에 시간이 지남에 따라 오류가 발생합니다. 따라서 인터넷의 다른 서버를위한 NTP 서버가되는 것만으로는 충분하지 않습니다. 진짜 정확한 시간은 원자 시계입니다. 그러나 원자 시계는 매우 비싸고 소수의 조직만 보유하고 있기 때문에 컴퓨터에 연결하면 진정한 NTP 서버가 됩니다. 이러한 서버에 연결하여 시스템의 시간을 동기화하기만 하면 됩니다. 그런 다음 자체 서버를 NTP 중계 서버로 만든 다음 인터넷이나 LAN에 있는 사용자에게 동기화를 제공합니다. 앞서 언급한 이론이 많으니 실제로 적용해 보겠습니다. NTP 릴레이 서버를 설정하는 것은 사실 매우 간단합니다. 필요한 RPM을 패키징하는 것부터 시작하겠습니다.

# rpm-IVH NTP-4 . 2 . 2 p 1-5 . el5 . rpm

그런 다음 첫 번째 단계는 인터넷에서 동기화를 제공할 NTP 서버를 찾는 것입니다.

서버 ntp2.leonard.com