Bagaimana cara Ubuntu menyinkronkan waktu tanpa ntp?

39

Dengan mengklik "Pengaturan sistem -> Waktu & Tanggal -> Secara otomatis dari Internet" Saya dapat menyinkronkan waktu dari Internet.

Namun, saya menemukan bahwa saya tidak memiliki ntpddaemon (Bahkan tidak diinstal). Jadi bagaimana cara kerja sinkronisasi?

n3v3rm03
sumber
6
Perhatikan bahwa antarmuka itu, IMHO, menyesatkan. Itu harus berupa tombol dan bukan sakelar karena menembakkan aksi sekali pakai, menggunakan ntpdate, --- Anda harus menginstal secara manual ntpkarena sinkronisasi waktu terus-menerus dengan internet. Saya melaporkannya di bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/…
Rmano
Saya tidak yakin itu menyesatkan. Saya mendapat kesan bahwa ia menjalankan ntpdate sekali pada setiap boot kecuali jika opsi ini dinonaktifkan. Adakah yang bisa mengkonfirmasi?
thomasrutter
pada Kubuntu 16.04, widget jam bahkan tidak menunjukkan Automatically from the Internetopsi atau apa pun yang terkait.
kmonsoor

Jawaban:

38

Ini dilakukan dengan menyinkronkan dengan ntpdatealat.

man ntpdate

NAME
       ntpdate - set the date and time via NTP

ntpdate sets the local date and time by polling the Network Time Proto‐
       col (NTP) server(s) given as the server arguments to determine the cor‐
       rect time. It must be run as root on the local host (unless the  option
       -q  is used). A number of samples are obtained from each of the servers
       specified and a subset of the NTP clock filter and selection algorithms
       are  applied  to  select  the best of these. Note that the accuracy and
       reliability of ntpdate depends on the number of servers, the number  of
       polls each time it is run and the interval between runs.

       ntpdate  can  be run manually as necessary to set the host clock, or it
       can be run from the host startup script to set the clock at boot  time.
       This is useful in some cases to set the clock initially before starting
       the NTP daemon ntpd. It is also possible to run  ntpdate  from  a  cron
       script.  However,  it  is important to note that ntpdate with contrived
       cron scripts is no substitute for the NTP daemon, which uses  sophisti‐
       cated  algorithms to maximize accuracy and reliability while minimizing
       resource use. Finally, since ntpdate does not discipline the host clock
       frequency as does ntpd, the accuracy using ntpdate is limited.

Anda dapat melakukannya dengan

sudo ntpdate TIME-SERVER

Daftar WAKTU-SERVER dapat ditemukan di sini

Maythux
sumber
6
tapi pertanyaannya adalah, ntpdate tidak diinstal secara default pada Ubuntu, jadi bagaimana Ubuntu pernah sync waktu?
John Allard
2
Catatan: jawaban yang diterima ini sangat usang. Pada versi terbaru Ubuntu (16.04+), timedatectl digunakan sebagai ganti ntpdate. timedatectl mengontrol layanan timeyncd digital systemd.
Corey Goldberg
Ya, jawaban ini di luar topik. Ini bukan "cara menyinkronkan waktu tanpa ntpd + ntpq", tetapi "Bagaimana UBUNTU melakukannya tanpa salah satu dari yang di atas (ntpdate / ntpq). Saya menemukan pertanyaan ini tepat setelah memperhatikan bahwa jam saya disinkronkan, dan saya mengharapkannya mati. paling tidak beberapa lusin detik (Ubuntu 18.04). Saya juga ingat sih NTPd yang penuh sesak, ketika ia menolak untuk menyinkronkan waktu "terlalu jauh" dll. Dan sekarang - jamnya disinkronkan! Sihir.
Tomasz Gandor
21

Ubuntu menyinkronkan dengan ntpdateutilitas sekali setiap kali koneksi jaringan muncul (yang biasanya terjadi ketika Anda boot).

Utilitas ini diinstal secara default, tetapi hanya berjalan ketika Ubuntu menyebutnya dan tidak tetap berjalan di latar belakang sebagai daemon.

Menginstal ntppaket menginstal daemon NTP. Daemon ntp memungkinkan waktu untuk terus disinkronkan saat sistem berjalan.


Pembaruan : dalam versi terbaru Ubuntu (mis. 16.04) ntpdatedigantikan oleh timedatectl, yang menyinkronkan sekali pada saat boot serta ketika jaringan muncul, tetapi tidak terus berjalan di waktu lain. Lihat https://help.ubuntu.com/lts/serverguide/NTP.html untuk informasi lebih lanjut.

thomasrutter
sumber
4
Itu tidak di setiap boot, per se; ikuti dpkg-query --listfiles ntpdateuntuk /etc/network/if-up.d/ntpdate.
ændrük
1
Ah terima kasih, jadi saya kira itu setiap kali antarmuka jaringan muncul, yang tidak harus setiap boot untuk semua orang.
thomasrutter
ah Anda yakin ini diinstal secara default? Saya duduk di sini pada instance server Ubuntu 16.04 yang baru dan tidak ada util ntpdate diinstal.
John Allard
ntpdate terinstal secara default di 14,04 tetapi tidak lagi di 16,04, sekarang dianggap usang timedatectlyang berfungsi sama - itu diinstal secara default dan disinkronkan sekali saat boot, tetapi juga ketika jaringan muncul.
thomasrutter
12

Bagi Anda yang memiliki waktu 16,04 LTS, sinkronisasi tampaknya ditangani oleh sytemd secara khusus "timedatectl"

timedatectl status
Local time: Wed 2016-11-30 17:45:18 CST
Universal time: Wed 2016-11-30 23:45:18 UTC
RTC time: Sun 2016-12-04 06:50:39
Time zone: America/Chicago (CST, -0600)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Konfigurasi adalah

/etc/systemd/timesyncd.conf

Info lebih lanjut di sini: Sinkronisasi Waktu dengan NTP AND timedatectl

MysticRyuujin
sumber
1
Ini adalah jawaban terbaik sampai sekarang. Sisanya praktis di luar topik (kecuali yang diedit, yang menyebutkan systemd-timedatectl).
Tomasz Gandor
2

Perhatikan juga bahwa sangat mungkin untuk ada antarmuka front-end, ke layanan yang tidak diinstal.

Anda dapat mengubah pengaturan di antarmuka front-end (GUI) itu semua yang Anda inginkan, tetapi jika layanan yang benar-benar melakukan tugas-tugas tidak diinstal, tidak ada yang akan terjadi.

Namun perlu dicatat, saya pikir "switch" itu valid karena ia memerintahkannya untuk melakukan pembaruan satu kali pada SETIAP booting. (atau tidak melakukannya).

Kecuali jika ini bukan sistem yang terhubung dengan jaringan, atau ada alasan utama lain untuk TIDAK mengatur waktunya agar sesuai dengan waktu "standar", saya akan sangat menyarankan Anda untuk menginstal ntpd, dan mengkonfigurasi serta menjalankannya dengan benar.

sdfgsdfg
sumber
1

Lihat: https://help.ubuntu.com/community/UbuntuTime

Ubuntu hadir dengan ntpdate sebagai standar, dan akan menjalankannya sekali pada saat boot untuk mengatur waktu Anda sesuai dengan server NTP Ubuntu. Namun, jam sistem cenderung melayang di antara reboot jika waktu di antara reboot lama. Dalam hal ini masuk akal untuk memperbaiki waktu sesekali. Cara termudah untuk melakukan ini adalah membuat cron menjalankannya setiap hari.

ntpdate ntp.ubuntu.com
Fadi
sumber
Atau Anda dapat menggunakan ntpd( help.ubuntu.com/lts/serverguide/NTP.html#ntpd ) untuk menjaga sinkronisasi.
Gaurav
FYI, halaman yang Anda ref.ed tidak diperbarui untuk 16,04 dari sekarang, karenanya tidak sangat membantu.
kmonsoor
1

Untuk beberapa alasan, pada 16.04, jawaban Maythux tidak langsung bekerja.

Tapi memimpin dari sana, ini berhasil bagi saya.

$ sudo ntpdate-debian

Harap dicatat bahwa itu memerlukan sudohak istimewa, tentu saja.

Di bawah tenda, ia menggunakan ntpdatealat, hanya membedakan file konfigurasi.

ntpdate-debian identik dengan ntpdate(8) kecuali bahwa ia menggunakan konfigurasi /etc/default/ntpdatesecara default. ntpdate menetapkan tanggal dan waktu lokal dengan polling server Network Time Protocol (NTP).

kmonsoor
sumber
16.04 menggunakan systemd jadi saya berharap untuk memiliki perintah baru yang setara untuk digunakan.
Rinzwind
@Rinzwind itu fantastis, tentu saja. Sayangnya, halaman utama yang seharusnya di wiki Ubuntu tidak diperbarui untuk 16,04. Ini menunjukkan pesan yang mengatakan "Artikel ini perlu diperbarui untuk menyertakan versi terbaru dari Ubuntu".
kmonsoor
Setidaknya dalam 14,04 sudo ntpdate-debianmelakukan hal yang sama dengan sudo ntpdate ntp.ubuntu.com. Yang aneh adalah mengapa mereka memilih dan men-tweak paket ini dari debian ketika kita membacanya is identical to ntpdate(8) except that it uses the configuration in /etc/default/ntpdate by defaultdan mem-file file yang kita baca ini NTPDATE_USE_NTP_CONF=yes # List of NTP servers to use (Separate multiple servers with spaces.) # Not used if NTPDATE_USE_NTP_CONF is yes. NTPSERVERS="ntp.ubuntu.com"???
Bermanfaat
1

Nah rilis Ubuntu kemudian sering melakukannya menggunakan chrony yang merupakan implementasi alternatif dari ntp dengan beberapa perbedaan: -

  1. Beberapa fitur ntp yang lebih jarang digunakan tidak diimplementasikan
  2. Ia mencoba untuk mengatasi dengan baik situasi di mana Anda memiliki akses jaringan yang terputus-putus - Ketika terhubung, ini menyinkronkan jam lokal dan melacak seberapa cepat ia melayang. Ketika terputus, ia menggunakan jam lokal, tetapi menyesuaikan waktu untuk memungkinkan bagaimana biasanya melayang.

Lihat https://chrony.tuxfamily.org/ untuk informasi lebih lanjut.

Mark Phillips
sumber