Jam Ubuntu mati sekitar setengah jam:
Di mana saya mulai memecahkan masalah ini?
Diduga sedang diatur "secara otomatis dari Internet". Bagaimana saya bisa memverifikasi bahwa "Internet" tahu jam berapa sekarang?
Detail
Ubuntu memiliki banyak waktu untuk berkomunikasi dengan Internet:
$ date; uptime
Fri May 18 05:56:00 PDT 2012
05:56:00 up 12 days, 10:48, 2 users, load average: 0.61, 0.96, 1.15
Server waktu ini yang saya temukan melalui pencarian web tampaknya mengetahui waktu yang tepat:
$ date; ntpdate -q north-america.pool.ntp.org
Fri May 18 05:56:09 PDT 2012
server 208.38.65.37, stratum 2, offset 1752.625337, delay 0.10558
server 46.166.138.172, stratum 2, offset 1752.648597, delay 0.10629
server 205.189.158.228, stratum 3, offset 1752.672466, delay 0.11829
18 May 05:56:18 ntpdate[29752]: step time server 208.38.65.37 offset 1752.625337 sec
Tidak ada kesalahan yang dilaporkan terkait dengan NTP:
$ grep -ic ntp /var/log/syslog
0
Setelah mem-boot ulang, waktu dikoreksi secara otomatis dan yang berikut muncul di /var/log/syslog
:
May 18 17:58:12 aux ntpdate[1891]: step time server 91.189.94.4 offset 1838.497277 sec
Log offset yang dilaporkan oleh ntpdate mengungkapkan bahwa jam melayang sekitar 9 detik setiap jam:
$ while true; do ntpdate-debian -q | tail -n 1 >> 'drift.log'; sleep 16m; done
^C
$ r -e '
attach(read.table("drift.log", header=FALSE))
clock <- as.POSIXct(paste(V1, V2, V3), format="%d %b %H:%M:%S")
fit <- lm(V10~clock)
png("drift.png")
plot(clock, V10, xlab="Clock time", ylab="Time server offset (s)")
abline(fit)
mtext(sprintf("Drift rate: %.2f s/hr", fit$coefficients[[2]]*3600))
'
Jawaban:
ntp berhasil menjaga komputer Anda tetap pada waktu yang tepat, dan melakukan itu tanpa pernah menjalankannya mundur - yang akan menjadi hal yang buruk untuk beberapa program yang mungkin sedang Anda jalankan.
Itu tidak hanya mengatur waktu, tetapi membuat penyesuaian terus menerus tentang bagaimana komputer Anda menjaga waktu sehingga waktunya tidak hanya tepat pada satu waktu, tetapi tetap dekat dengan waktu nyata (dalam lusinan milidetik, bukan lusinan menit) . Ini menyesuaikan kedua fase (waktu) dan kecepatan (seberapa cepat jam "kutu"). ntp tidak pernah membuat jam berjalan mundur. Butuh waktu lama untuk menetapkan seberapa cepat untuk menandai jam setelah reboot, jadi ntp melacak penyimpangan dalam file bernama /var/lib/ntp/ntp.drift. Karena Anda tidak menjalankan ntp semua ini tidak terjadi.
ntp tidak sepopuler dulu karena tidur laptop dan desktop, dan mesin virtual menghentikannya dari menjalankan beberapa waktu. Ini dirancang untuk berjalan sesekali pada jadwal sendiri di komputer yang berjalan sepanjang waktu, dan di dunia nyata di mana waktu terus menerus. Itu mungkin mengapa itu tidak diinstal secara default di workstation modern. [Untuk Vmware, lihat ini]
Alih-alih, ntpdate dijalankan saat antarmuka jaringan ditampilkan. Ketika laptop tidur dibangun kembali membangun kembali koneksi jaringan, ntpdate dijalankan, dan waktunya kembali benar. Jika jam perangkat keras mesin cukup akurat, dan jaringan sering naik turun, itu umumnya cukup baik bagi kebanyakan orang.
Untuk beberapa alasan stock ntpdate tidak selalu berjalan. Gunakan ntpdate-debian sebagai gantinya dalam kasus ini. Sintaks untuk for.mer adalah sesuatu seperti ntpdate ntp.ubuntu.com , untuk yang terakhir itu adalah ntpdate-debian
Dengan tidak adanya salah satu dari hal-hal itu, maka ntp adalah cara yang lebih baik untuk menjaga waktu.
Sistem dirancang untuk mengambil pengatur waktu sesekali dan memperbarui idenya tentang waktu setiap interupsi. Selama timer perangkat keras berjalan ke spec. waktu tidak melayang terlalu banyak. Jika timer perangkat keras tidak, waktu akan melayang lebih banyak (semua jam seperti itu akan melayang beberapa, karena alasan yang sama jam tangan Anda atau jam yang dikendalikan baterai akan. Jam yang terhubung ke dinding disinkronkan dengan waktu berdasarkan frekuensi dan fase yang disimpan oleh perusahaan listrik Anda).
Sebagian besar pengatur waktu komputer dikendalikan oleh rangkaian osilator yang dikontrol kristal pada sirkuitnya yang terintegrasi. Meskipun kristal, mereka berjalan lebih cepat dan lebih lambat tergantung pada lingkungan, kebanyakan suhunya. Jika Anda tidak menginstal perangkat lunak sinkronisasi waktu, kami tidak tahu, jam sistem Anda tidak aktif.
Jika Anda menjalankan ntp selama satu atau dua hari, ia akan menyimpan informasi di /var/lib/ntp/ntp.drift yang akan menunjukkan berapa banyak yang harus disesuaikan dengan laju di mana waktu sistem operasi Anda maju per interupsi untuk cocokkan laju jam perangkat keras Anda dengan waktu nyata yang didapat melalui internet. Menjaga file tetap sama dan baru memulai dan menghentikan ntp setelah satu menit setelah itu (dengan asumsi Anda menyimpan file /var/lib/ntp/ntp.drift tidak berubah) mungkin melakukan banyak hal untuk memperbaiki hal ini jika clock bias ntp tetap ada setelah ntp berakhir. Saya tidak yakin dengan detail ini.
Saya menduga nilai ntp akan disimpan di /var/lib/ntp/ntp.drift jauh berbeda dari milik saya.
Namun, jika mesin ini terus berjalan sepanjang waktu, hal terbaik yang harus dilakukan adalah menginstal ntp dan membiarkannya melakukan hal tersebut. Lihat jawaban lain untuk detail tentang cara mendapatkan waktu yang tepat sebelum memulainya. Saya menjalankan ntp di desktop saya dan ntpdate di laptop saya.
Alternatif yang mungkin menarik, adjtimex, disebutkan dalam jawaban ini oleh nealmcb.
Jika sistem Anda tidak terus berjalan sepanjang waktu, menjalankan ntpdate saat boot sepertinya pilihan yang bagus.
Peringatan beberapa perangkat lunak dapat menjadi aneh jika waktu komputer berjalan mundur. Menjalankan ntpdate setelah boot dapat menyebabkan ini terjadi.
Satu gotcha, itu bisa menjadi masalah: Seingat saya ntp mengharapkan waktu untuk tidak terlalu jauh. Jika ya, mencoba bertindak konservatif, ntp tidak akan menyesuaikan waktu sama sekali. Jika Anda berada dalam situasi ini, masuk akal untuk melakukan keduanya - jalankan ntpdate saat boot untuk mendapatkan waktu yang diinisialisasi ke waktu yang tepat, dan kemudian biarkan ntp dijalankan agar tetap berjalan untuk memberikan ketepatan waktu yang akurat. Khususnya baterai motherboard yang buruk dapat menyebabkan kesalahan ini, seperti dapat mem-boot komputer yang sudah lama mati.
sumber
man rtc
page mengatakan: "RTCs tidak harus bingung dengan jam sistem, yang merupakan perangkat lunak jam dikelola oleh kernel dan digunakan untuk mengimplementasikan gettimeofday (2) ..." Tidak tahu apakah jam sistem ini terkait dengan jam FSB . Melihat konfigurasi kernel, kernel i386 akurat terbaru Ubuntu memiliki jam sistem yang diperbarui pada 250Hz. Terima kasih atas komentarnya!- Biasanya waktu hanya disinkronkan sekali setiap boot atau bangun-dari-tidur
Tidak, server waktu Ubuntu benar, dan pengaturan waktu secara otomatis darinya.
Masalahnya adalah bahwa biasanya terjadi hanya sekali pada setiap bootup (atau lebih tepatnya, setiap kali antarmuka jaringan dinyalakan - baik dari shutdown, sleep atau hibernasi). Berdasarkan waktu aktif Anda, aman untuk mengatakan itu tidak disinkronkan dalam lebih dari seminggu. Dan jam sistem Anda berjalan sedikit cepat untuk beberapa alasan.
- Mengatur
cron
pekerjaan per jam untuk menyinkronkan jika Anda tidak sering reboot, atau server / desktop Anda tidak pernah tidurTaruhan terbaik Anda adalah mengatur pekerjaan-cron, saya akan mengatakan setiap jam jika Anda ingin waktu yang sangat tepat. Cara termudah untuk melakukannya adalah:
sudo editor /etc/cron.hourly/ntpsync
Tambahkan baris berikut:
sudo chmod +x /etc/cron.hourly/ntpsync
Anda bisa memasukkan ini ke dalam
/etc/cron.daily
jika Anda mau, sekali sehari.sumber
Ini dapat terjadi jika Anda menginstal daemon waktu ntp dan waktu pada mesin Anda terlalu jauh untuk dikoreksi dengan cepat.
Untuk memperbaikinya buka terminal dan lakukan
Apa yang dilakukan:
Jika Anda belum menginstal ntp, lakukan dengan
Pembaruan: Menggunakan ntpdate dalam pekerjaan cron, seperti yang telah direkomendasikan di sini, mengarah ke masalah halus.
Ntpdate akan membuat waktu 'melompat' setiap jam atau lebih. Menggunakan ntp menghindari masalah ini, karena itu akan menyesuaikan waktu dengan mengubah jam. Selain itu, saat memilih server ntp di lingkungan tersebut memberikan akurasi yang lebih tinggi, itu tidak perlu. File konfigurasi ntp default memiliki beberapa server di dalamnya dan server secara otomatis mengkompensasi keterlambatan.
Intinya: - gunakan ntp - jika Anda jauh dari, shutdown ntp, jalankan ntpdate sekali dan restart ntp.
sumber
/etc/init.d/ntp
tidak ada. Ini adalah instalasi Ubuntu 12.04 yang cukup baru dan saya belum dengan sengaja mengubah apa pun yang berkaitan dengan waktu.Saya memiliki masalah yang sama dan itu disebabkan oleh sesuatu di firewall. Pada akhirnya saya menambahkan pekerjaan cron per jam tetapi menambahkan
-u
argumen untukntpdate
membuatnya menggunakan port tidak ada standar.Masalah saya disebabkan oleh Ubuntu tidak benar-benar memeriksa apakah
ntpdate
berfungsi tetapi secara otomatis dengan asumsi bahwa itu akan berhasil.sumber