Apa perintah untuk memperbarui waktu dan tanggal dari internet


132

Apa perintah untuk memperbarui waktu dan tanggal dari Internet? Apakah ada aplikasi yang memungkinkan saya melakukannya dari antarmuka penggunanya dan bukan dari shell?


Bisakah Anda mengidentifikasi versi Ubuntu yang Anda gunakan?
david6

1
Apakah Anda memerlukan waktu yang sangat akurat? (Jika demikian, Anda harus membiasakan diri dengan ntpq dan memilih server waktu). Jika Anda hanya ingin waktu Anda (kurang-lebih) benar, maka coba: Pengaturan Sistem >> Waktu & Tanggal , dan periksa bahwa ' Setel waktu ' diatur ke ' Otomatis dari Internet '.
david6

Jika Anda ingin selalu sangat akurat, instal ntpd. Ini adalah proses kecil yang berjalan di latar belakang dan menyesuaikan waktu terus-menerus, bukan semburan / lompatan, tetapi akan memakan sedikit sumber daya Anda.
strugee


1
Pertanyaan ini sangat penting saat ini. Akhir-akhir ini menjadi sangat rumit: beberapa PC menggunakan chrony atau ntpd, mereka selalu menemukan alasan untuk TIDAK memperbarui waktu (jam terlalu salah , menangkan masalah terkait dua-boot, ntp mungkin juga menolak untuk mempercayai sumber-sumber jam yang tidak memiliki Internet). Terlebih lagi, jika Anda memiliki PC dengan internet, tetapi jam salah, seperti sekarang browser dan situs web memaksa Anda untuk menggunakan HTTPS, itu akan diblokir karena jam Anda salah, dan Anda bahkan tidak bisa mencari cara memperbaikinya! Alangkah baiknya jika ada jawaban yang membahas semua kasus. "Setel jam dengan tangan" adalah yang paling bisa diandalkan sekarang ...
bct

Jawaban:


144

Anda dapat melakukannya dengan mis sudo ntpdate time.nist.gov. Server lain termasuk time.windows.com, dll.

http://www.pool.ntp.org/ mencantumkan server waktu di seluruh dunia.


5
Saya mendapat pesan kesalahanthe NTP socket is in use, exiting
friederbluemle

7
@friederbluemle Seperti yang dikatakan dalam jawaban ini , Anda harus menghentikan layanan ntp sudo service ntp stop. Kemudian Anda dapat menggunakan perintah yang disarankan dalam jawaban dan akhirnya Anda dapat memulai kembali layanan dengansudo service ntp start
Michele

Ini berfungsi, tetapi itu tidak memperbarui jam di taskbar secara otomatis.
posfan12

4
Saya mendapatkan kesalahan "ntpdate [15806]: tidak ada server yang cocok untuk sinkronisasi ditemukan". Jawaban kedua di bawah ini menggunakan google.com berfungsi lebih baik
Kim Stacks

7
ntpdate: command not found
rogerdpack

134

Ini adalah kode kecil yang saya temukan untuk memperbarui waktu Anda jika Anda memiliki masalah dengan ntp:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

Solusi bagus!
Farid Rn

Sangat Bagus, bekerja untuk saya.
Janderson Silva

8
Ini harus menjadi jawaban yang diterima!
brijs

Cuplikan ini menuju gudang senjata saya! ;)
Dave Amit

2
Ini bagus, tetapi biasanya akan berada di antara 8 dan 50 ms di belakang karena tidak menyinkronkan per se.
Nonny Moose

48

Pada 2018 dengan Ubuntu 16.04 LTS yang baru diinstal, menjalankannya sudo ntpdate time.nist.govmemberikan:

sudo: ntpdate: command not found

Ini karena ( sumber resmi ):

ntpdatedianggap usang timedatectldan tidak lagi diinstal secara default.

Alih-alih lakukan ini untuk memaksa sinkronisasi terjadi sekarang:

sudo timedatectl set-ntp off
sudo timedatectl set-ntp on

Dalam kasus saya, saya menjalankan Ubuntu di kotak virtual dan telah menyimpan status mesin sehingga ketika saya memulai kembali contoh itu tidak otomatis menyinkronkan jam karena tidak ada acara boot untuk memicu sinkronisasi. Jadi waktu masih menunjukkan apa itu terakhir kali saya menjalankan kotak virtual.


Saya baru saja memutakhirkan ke bionik dan memperhatikan bahwa ntpdate tidak berfungsi lagi, dan timedatectl bekerja untuk saya.
kapad

1
Ini juga bekerja untuk saya, pada Ubuntu 18.04.
kiamlaluno

Jika waktunya tidak berubah, periksa zona waktu Anda dengan adil timedatectl. Jika salah, lihat --helpbagian untuk perintah tentang cara mengubahnya.
Brad Turek

1
Tangkapan yang bagus untuk Kotak Virtual. Menyimpan banyak sakit kepala debugging!
Mohd Abdul Mujib

14

Menjalankan perintah ini di terminal harus melakukan trik

sudo dpkg-reconfigure tzdata

Anda dapat menambahkan zona waktu ekstra secara grafis, saya pikir, dengan mengklik jam dan melihat opsi-opsinya.


Zona waktu tidak benar-benar sama dengan waktu (akurat). Tapi, juga tidak terlalu jelas apa yang diminta oleh Vikramjeet .
david6

Apa perintah untuk memperbarui waktu dan tanggal dari Internet adalah pertanyaannya, sudo dpkg-reconfigure tzdata adalah jawabannya, jadi apa yang memberi? komentar tentang zona waktu, terkait dengan satu-satunya hal yang saya tahu mungkin secara grafis
Jayo

Saya berasumsi bahwa secara grafis mereka berarti metode grafis (atau 'GUI'), dan BUKAN geografis (atau seluruh dunia).
david6

begitu pula saya, saya tidak menyadari cara untuk memperbarui tanggal dan waktu melalui net grafis , jadi saya menggunakan terminal, apa yang saya lakukan tahu bagaimana melakukannya grafis diatur zona waktu, bagian tentang zona waktu dua saya sen pada apa yang dapat dilakukan untuk mempengaruhi waktu secara grafis , sejauh yang saya tahu, apakah saya mengerti sekarang?
Jayo

12

Sangat mudah diatur dari baris perintah: https://help.ubuntu.com/lts/serverguide/NTP.html Dari tautan itu:

Ubuntu hadir dengan ntpdate sebagai standar, dan akan menjalankannya sekali pada saat boot untuk mengatur waktu Anda sesuai dengan server NTP Ubuntu: ntpdate -s ntp.ubuntu.com

Inilah contoh GUI https://help.ubuntu.com/community/UbuntuTime#Time_Synchronization_using_NTP


6
Tolong jangan gunakan tautan ke situs lain. Ketika mereka menghilang begitu juga informasi yang Anda posting. Cegah 'tautan busuk' terjadi dengan menjawab konten tautan (dan berikan kredit jika kredit jatuh tempo).
Rinzwind

4

Sebagian besar di sini tidak akan berfungsi, karena ntp akan menimpa pengaturan Anda dalam hitungan detik.

Anda harus menonaktifkan NTP terlebih dahulu. Di ubuntu dilakukan sebagai:

    # Disable ntp
    sudo timedatectl set-ntp 0

Maka Anda dapat melakukan:

    # Set software clock 
    sudo date --set="2018-04-01 22:22:22"
    # Sync with hardware clock 
    sudo hwclock --systohc

3
dateFromServer=$(curl -v --silent https://google.com/ 2>&1 \
   | grep Date | sed -e 's/< Date: //'); date +"%d%m%Y%H%M%S" -d "$dateFromServer"

atau

date -s `curl -I 'https://startpage.com/' 2>/dev/null | grep -i '^date:' | sed 's/^[Dd]ate: //g'`

1
Cara standar untuk mengatur tanggal dan waktu dengan menghubungkan dengan server waktu melalui ntp. Mengapa Anda menggunakan koneksi https untuk melakukan ini?
xiota

1
//, Terkadang senang memiliki alternatif dari cara standar, kurasa.
Nathan Basanese

2
ISP saya memblokir server NTP saya
Tyler

1

Anda perlu menginstal ntppaket. Pengaturan Tanggal / Waktu tersedia dalam pengaturan sistem. Ini beberapa informasi lebih lanjut.


2
Tautannya sudah mati ... Seperti yang dikatakan oleh Rinzwind "Tolong jangan gunakan tautan ke situs lain. Ketika mereka menghilang begitu juga informasi yang Anda posting. Cegah 'tautan busuk' terjadi dengan menjawab dengan isi tautan (dan beri kredit di mana kredit jatuh tempo). " Terima kasih
Michele

1

Apakah ada aplikasi yang memungkinkan saya melakukannya dari antarmuka penggunanya dan bukan dari shell?

Saya menggunakan 17.10 dan dapat pergi ke Pengaturan (dari menu kanan atas di UI)> Detail> Tanggal & Waktu. Dalam kasus saya, sistem saya tidak memperbarui dari Internet meskipun "Tanggal & Waktu Otomatis" disetel ke "ON". Saya cukup mengubahnya menjadi "OFF", tunggu sebentar, lalu ubah kembali menjadi "ON". Itu mengambil tanggal dan waktu saat ini dan saya baik untuk pergi.


0

Terima kasih kepada Twiglets [Untuk Router AsusWRT / Merlin]

Ini adalah alternatif yang TIDAK mengatur tanggal !!! [-s opsi]. Mencetak 'Tanggal' yang diambilnya & 'Tanggal' yang ditetapkan untuk perbandingan.

Di AsusWRT / Merlin, satu-satunya hal yang aneh adalah bahwa tanggal yang diambil adalah ".... GMT" dan utilitas tanggal menetapkan waktu yang benar tetapi mengubahnya menjadi "... DST" Lingkungan telah menetapkan TZ ke "GMT"

datetext=$(curl -I 'https://1.1.1.1/' 2>/dev/null | grep "Date:" |sed 's/Date: [A-Z][a-z][a-z], //g'| sed 's/\r//') ; echo "Date Retrieved = $datetext" ; echo -n "Date set = " ; date -s "$datetext" -D'%d %b %Y %T %Z'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.