Ubuntu'yu saatimi bir zaman sunucusuyla senkronize edecek şekilde nasıl ayarlayabilirim?


23

Ubuntu'nun sistem saatimi başlangıçta zamanlayıcı ile otomatik olarak senkronize etmesini istiyorum.

Ancak, bilgisayarım giriş yapana kadar internete bağlı değil (artı iyi önlem almak için 5 - 10 saniye).

Bunu yapmak için nasıl ayarlayabilirim?


2
Burada, ntpd'nin nasıl yükleneceğini açıklayan mükemmel cevaplar var, böylece bilgisayarınız sürekli olarak internet zaman sunucuları ile senkronize oluyor, fakat sadece varsayılan olarak Ubuntu'nun ağ arayüzünüz geldiğinde ntp.ubuntu.com ile zamanı senkronize edeceğini eklemek istedim. "yukarı" (örneğin, bilgisayarınızı başlattığınızda). İnternete bağlanma şekliniz nedeniyle bu sizin durumunuzda görünmüyor, ancak diğer okuyucular Ubuntu'nun ntpd kurulmadan zaman eşitlemediğini varsaymamalıdır.

İşte nasıl time.nist.gov ayarlayacağınızı açıklayan bir tane: askubuntu.com/questions/972799/…
SDsolar

Yanıtlar:


32

Bu, talimatların alınabileceği NTP ile yapılır . Temel olarak, bir NTP arka plan programı yüklemeniz gerekir. Kullanılabilecek birkaç seçenek var gibi görünüyor ama “standart” olanı pakette ntp. Bağlantılı sayfadaki talimatlara göre,

sudo apt-get install ntp

Ubuntu'nun NTP sunucusuyla senkronize olacak her şeyi ayarlayacaktır.

EDIT : "Başlangıçta" özledim. Sisteminizle sunucu arasında sürekli senkronizasyon elde etmek için genellikle ntpd kullanılması önerilir, ancak gerçekten yalnızca bir kez senkronize etmek istiyorsanız, mfisch'in cevabı aradığınız gibi görünüyor.


3
Genel olarak ntpd'nin her zaman çalışır durumda olması ve çevrimiçi olmadığı zamanlarda bağlantı kurmakta başarısız olmasının daha iyi olacağını düşünüyorum, bu hiçbir şekilde zararlı değildir. Bununla birlikte, benim yöntem de çalışmalıdır;)
mfisch

Sürekli çalışmakta ben iyiyim.
Nathan Osman,

1
George, bunu yap. Dünyadaki en can sıkıcı şey bunun gibi bir soru sormak ve tüm cevapların "neden bunu yapmak istiyorsun?" Olması nedeniyle "gerçek" soruna cevap vermeyi umuyordum.
mfisch

Ubuntu 18.04 için ntpd kurulum önerileri daha uzun süre geçerlidir. Varsayılan olarak systemd-timesyncd.service, zamanı senkronize eder.
ernstkl

9

"Sistem-> Yönetim-> Saat ve Tarih" bölümüne giderseniz tarih / saati ayarlamak için bir GUI alırsınız.

Zaman sunucularını kullanmak için bir seçenek sağlanmıştır. Eğer kontrol ederseniz ve NTP kurulu değilse, yüklemek isteyip istemediğinizi soracaktır. Sadece "evet" e tıklayın ve işini yapsın :)


"Başlangıç" olayını unuttum. NTP işini düzenli olarak yapıyor, bu da çevrimiçi olduğunuzda senkronize olmanız gerektiği anlamına geliyor ... Ancak emin olmanın tek yolu mfisch tarafından sağlanan bir komut dosyasını kullanmaktır. Şimdi dürüst olmak gerekirse: bir kez senkronize edildiğinde, bilgisayarınızın saatinde berbat olma ihtimali çok az. Eğer varsayılan zaman senkronizasyonunu kullanırsanız ve arka planda yapmasına izin verirseniz, daha fazla bir şey yapmanıza gerek kalmadan çoğu zaman gitmeniz iyi olur.
Küçük Jawa,

"Saat ve Tarih" etiketli değil mi?
Firefeather

@Firefeather: iyi olabilir. İngilizce arayüzüm yok, o yüzden söyleyemem;)
Little Jawa

Ah, aptallık, uluslararasılaştırmayı unutmak. En-us sistemim onu ​​"Zaman ve Tarih" olarak etiketliyor.
Firefeather

6

Sen kullanarak yapabilirsiniz at ve ntpdate . At zaten yüklü, ancak ntpdate olmayabilir. (apt-get install ntpdate).

İlk önce ntpdate komutunu çalıştıran küçük bir script oluşturun, update_time.sh adını verelim.

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

.Bash_login dosyanıza (oluşturmanız gerekebilir) şunu ekleyin:

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

İstediğini yapmalısın. O gecikmeyi değiştirebilir de kullanımları vb 5 dakika, 10 dakika olmak

EDIT: Çalıştırmak için root olmanız gerektiğini fark ettim ntpdate. SUID bitini, bahsettiğim update_time.sh betiğine ayarlamanız gerekir. Bunu komuttan çalıştırarak yapabilirsiniz (yalnızca bir kez çalıştırmanız gerekir):

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

1
iirc .sh komut dosyalarına intihar ayarlayamazsınız.
Broam

Nintdat'ta doğrudan intiharı yapar mısın? Bu muhtemelen aynı şeyi başarırdı.
mfisch

2
Neden kullanılmalı at? Ve otomatik olarak çalışacaksanız ntpdate, neden sadece ntpservisi yüklemiyorsunuz?
Reinier Post

1
not: ntpdate artık varsayılan olarak Ubuntu'ya (16.04+) yüklenmemiş ve timedatectl lehine kaldırılmıştır. timedatectl, sistemin zaman senkronizasyonu için varsayılan olarak kullanılan timesyncd servisini kontrol eder.
Corey Goldberg

0

Ubuntu 16.04'ten beri timedatectl / timesyncd (sistemd'in bir parçası) ntpdate / ntp öğelerinin çoğunu değiştirir. Zaman Senkronizasyonu bölümüne bakınız .

Aşağıdakileri kullanarak zaman senkronizasyonunu etkinleştirmeniz gerekebilir:

$ sudo timedatectl set-ntp on

Chrony kullanmak istiyorsanız:

  • Bir kerelik senkronizasyon kullanımı gerekiyorsa: $ chronyd -q

  • Tek seferlik bir zaman kontrolü gerekiyorsa, zaman kullanımını ayarlamadan: $ chronyd -Q

  • Sürekli senkronizasyon için önerilen çözüm chrony'dir:

chrony (d)

NTP arka plan programı chronyd sistem saatinizin kaymasını ve dengesini hesaplar ve sürekli olarak ayarlar, bu nedenle örneğin tutarsız kütüklere yol açabilecek büyük düzeltmeler yoktur. Maliyet biraz işlem gücü ve hafızasıdır, ancak modern bir sunucu için bu genellikle ihmal edilebilir düzeydedir. Kurulum

Chrony'yi kurmak için, bir terminal isteminden şunu girin:

$ sudo apt install chrony

Ayrıca etkinleştirmeniz gerekebilir

sudo timedatectl ayarı-ntp açık

Güncelleme: Yukarıdaki işe yaramazsa, başka bir yöntem çalışacak bir cron işi ayarlamaktır$ chronyd -q

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.