시계를 시간 서버와 동기화하도록 Ubuntu를 설정하는 방법은 무엇입니까?


23

Ubuntu가 시작할 때 시스템 시계를 시간 서버와 자동으로 동기화하고 싶습니다.

그러나 로그인 한 후에야 PC가 인터넷에 연결되지 않습니다 (5-10 초 이상).

이를 위해 어떻게 설정할 수 있습니까?


2
컴퓨터가 인터넷 시간 서버와 지속적으로 동기화되도록 ntpd를 설치하는 방법을 설명하는 훌륭한 답변이 이미 있지만 기본적으로 Ubuntu는 네트워크 인터페이스가 올 때마다 ntp.ubuntu.com과 시간을 동기화한다고 덧붙였습니다. "시작"(예 : 컴퓨터를 시작할 때). 인터넷에 연결하는 방식으로 인해 귀하의 경우에는 이런 일이 일어나지 않지만, 다른 독자들은 ntpd를 설치하지 않고 우분투가 시간을 동기화하지 않는다고 가정해서는 안됩니다.

time.nist.gov로 설정하는 방법은 다음과 같습니다. askubuntu.com/questions/972799/…
SDsolar

답변:


32

이것은 지시 사항 을 사용할 수 있는 NTP로 수행됩니다 . 기본적으로 NTP 데몬을 설치해야합니다. 몇 가지 선택이 가능하지만 "표준"선택은 패키지에 ntp있습니다. 링크 된 페이지의 지침에 따라

sudo apt-get install ntp

Ubuntu의 NTP 서버와 동기화하도록 모든 것을 설정합니다.

편집 : "시작할 때"를 놓쳤다. 일반적으로 ntpd를 사용하여 시스템과 서버 간의 지속적인 동기화를 얻는 것이 좋지만 실제로 한 번만 동기화하려는 경우 mfisch의 답변이 원하는 것 같습니다.


3
나는 일반적으로 ntpd를 항상 실행하고 온라인 상태가 아닐 때 연결에 실패하는 것이 더 나을 것이라고 생각합니다. 그렇게 말하면 내 방법도 작동해야합니다.)
mfisch

계속 실행해도 괜찮습니다.
Nathan Osman

1
조지, 그냥 해 세상에서 가장 성가신 것은 이런 질문을하고 모든 응답을 "왜 그렇게하고 싶습니까?"
mfisch

Ubuntu 18.04의 경우 ntpd 설치에 대한 조언이 더 이상 적용됩니다. 기본적으로 systemd-timesyncd.service는 시간을 동기화합니다.
ernstkl

9

"시스템-> 관리-> 시간 및 날짜"로 이동하면 날짜 / 시간을 설정하는 GUI가 나타납니다.

시간 서버를 사용하기위한 옵션이 제공됩니다. 확인하고 NTP가 설치되어 있지 않으면 설치할 것인지 묻습니다. "예"를 클릭하고 작업을 수행하십시오. :)


"시동"을 잊어 버렸습니다. NTP는 정기적으로 작업을 수행하므로 온라인 상태 일 때마다 동기화 해야 합니다. 그러나 확인하는 유일한 방법은 mfisch에서 제공하는 일종의 스크립트를 사용하는 것입니다. 솔직히 말해서 일단 동기화되면 컴퓨터가 시계에 엉망이 될 가능성은 거의 없습니다. 따라서 기본 시간 동기화를 사용하고 백그라운드에서 수행하도록 설정하면 더 이상 아무 것도하지 않아도 대부분의 시간을 이동하는 것이 좋습니다.
리틀 자와

"시간 및 날짜"라고 표시되어 있지 않습니까?
Firefeather

@Firefeather : 그럴 수도 있습니다. 영어 인터페이스가 없으므로 말할 수 없습니다.)
Little Jawa

아, 바보 같은 국제화를 잊어 버렸습니다. 내 en-us 시스템에는 "시간 및 날짜"라는 레이블이 붙어 있습니다.
Firefeather

6

atntpdate를 사용하여이를 수행 할 수 있습니다 . at이 (가) 이미 설치되어 있지만 ntpdate 가 설치되어 있지 않을 수 있습니다. (apt-get install ntpdate).

먼저 ntpdate를 실행하는 작은 스크립트를 작성하고 update_time.sh라고합니다.

#!/bin/bash
ntpdate pool.ntp.org

.bash_login 파일 (생성해야 할 수도 있음)에 다음을 추가하십시오.

at -f ~/update_time.sh now + 1 minute

그것은 당신이 원하는 것을해야합니다. 당신은 지연을 변경할 수 있습니다 에서 사용하는 등 오분 10 분으로

편집 : 방금 실행하려면 루트가되어야한다는 것을 깨달았습니다 ntpdate. 위에서 언급 한 update_time.sh 스크립트에서 SUID 비트를 설정해야합니다. 명령에서이를 실행하면됩니다 (한 번만 실행하면 됨).

sudo chmod 4711 update_time.sh
sudo chown root update_time.sh

1
iirc .sh 스크립트에서는 suid를 설정할 수 없습니다.
Broam

그렇다면 ntpdate에서 suid를 직접 수행 할 수 있습니까? 아마 같은 일을 성취 할 것입니다.
mfisch

2
왜 사용 at합니까? 그리고 자동으로 실행 ntpdate하려면 왜 ntp서비스를 설치하지 않습니까?
Reinier Post

1
참고 : ntpdate는 더 이상 기본적으로 Ubuntu (16.04+)에 설치되지 않으며 timedatectl을 위해 더 이상 사용되지 않습니다. timedatectl은 시간 동기화에 기본적으로 사용되는 systemd의 시간 동기화 서비스를 제어합니다.
Corey Goldberg

0

우분투 16.04 이후 timedatectl / timesyncd (systemd의 일부)는 ntpdate / ntp의 대부분을 대체합니다. 시간 동기화를 참조하십시오 .

다음을 사용하여 시간 동기화를 활성화해야 할 수도 있습니다.

$ sudo timedatectl set-ntp on

chrony를 사용하려는 경우 :

  • 원샷 동기화가 필요한 경우 : $ chronyd -q

  • 시간을 설정하지 않고 원샷 시간 확인이 필요한 경우 : $ chronyd -Q

  • 지속적인 동기화를 위해 권장되는 솔루션은 다음과 같습니다.

크로 니 (d)

NTP 데몬 chronyd는 시스템 클럭의 드리프트 및 오프셋을 계산하고 지속적으로 조정하므로 일관되지 않은 로그를 초래할 수있는 큰 수정 사항이 없습니다. 비용은 약간의 처리 능력과 메모리이지만 현대 서버의 경우 일반적으로 무시할 수 있습니다. 설치

chrony를 설치하려면 터미널 프롬프트에서 다음을 입력하십시오.

$ sudo apt install chrony

활성화해야 할 수도 있습니다

sudo timedatectl set-ntp 켜기

업데이트 : 위의 방법으로 작동하지 않는 또 다른 방법은 크론 작업을 실행하도록 설정하는 것입니다$ chronyd -q

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.