Bagaimana cara mengatur waktu dan tanggal dari Internet?

35

Bagaimana cara mengambil tanggal dari Internet dan mengatur jam komputer saya, dari baris perintah?

Mohsen
sumber
3
Saya tidak mengerti downvotes. Pertanyaan sederhana adalah apa yang membuat komunitas kuat. Contohnya lihat ini
Mohsen
3
Ketika saya mengarahkan panah ke bawah pertanyaan dengan mouse, saya melihat: "Pertanyaan ini tidak menunjukkan upaya penelitian apa pun; tidak jelas atau tidak berguna". Saya akan tergoda untuk menurunkan pertanyaan Anda berdasarkan yang pertama (tidak ada indikasi apa yang Anda temukan), yang kedua (tidak ada indikasi pada platform spesifik apa yang sedang Anda kerjakan, dan mengapa ini harus berupa perintah (bukan daemon waktu biasa) ) dan yang ketiga (kebanyakan * nix pengguna akan memiliki beberapa daemon waktu diinstal secara default).
Anthon
+1 Saya juga tidak mengerti downvotes, hanya karena ini adalah sesuatu yang telah menyadap saya berkali-kali sebelumnya, dan sepertinya mustahil untuk menemukan sesuatu yang ringkas dan berguna tentang tema spesifik ini.
l0b0
@Mohsen Saya tidak mengundurkan diri tetapi perbedaan pada pertanyaan yang Anda tautkan adalah tidak ada switchruby saat Anda dapat mengatur langsung tanggal melalui date -s(seperti yang ditunjukkan dalam manual), atau menggunakan salah satu perintah yang dijelaskan di bawah ...
Ulrich Dangel
1
@Anthon saya tidak setuju: pertanyaan itu adalah tentang perangkat kecil dengan BusyBox, yang membuat saran umum “gunakan NTP” belum tentu berlaku
Gilles 'SO- stop being evil'

Jawaban:

29

Anda dapat gunakan :

sudo dpkg-reconfigure tzdata

untuk mengkonfigurasi zona waktu Anda.

Untuk memperbarui waktu dan tanggal dari internet gunakan yang berikut ini:

Memasang

Jika ntpd tidak diinstal, gunakan salah satu dari perintah berikut untuk menginstal ntpd:

  • Untuk berbasis RPM:

    yum install ntp 
    
  • Untuk Debian:

    sudo apt-get install ntp
    

Konfigurasi

Anda setidaknya harus menetapkan parameter berikut di file konfigurasi /etc/ntp.conf: server

Misalnya, buka file /etc/ntp.conf menggunakan editor teks vi:

  # vi /etc/ntp.conf

Temukan parameter server dan atur sebagai berikut:

  server pool.ntp.org

Simpan file dan mulai ulang layanan ntpd:

  # /etc/init.d/ntpd start

Anda dapat menyinkronkan jam sistem ke server NTP segera dengan perintah berikut:

  # ntpdate pool.ntp.org

* Untuk mengatur waktu dan tanggal secara manual gunakan sintaks berikut:

 date --set="STRING"

Misalnya, atur data baru ke 2 Okt 2006 18:00:00, ketikkan perintah berikut sebagai pengguna root:

# date -s "2 OCT 2006 18:00:00"

ATAU

# date --set="2 OCT 2006 18:00:00"

Anda juga dapat menyederhanakan format menggunakan sintaks berikut:

# date +%Y%m%d -s "20081128"

Untuk mengatur waktu gunakan sintaks berikut:

# date +%T -s "10:13:13"

Dimana,

10: Jam (jj) 13: Menit (mm) 13: Detik

Gunakan% p lokal yang setara dengan AM atau PM, masukkan:

# date +%T%p -s "6:10:30AM"

# date +%T%p -s "12:10:30PM"
tusharmakkar08
sumber
Meskipun informasi tanggal tampaknya semuanya valid, ia tidak memasukkan persyaratan from the internetdari judul OP ke akun mana pun.
Anthon
Saya percaya bahwa paket tzdata (data zona waktu) menyinkronkan data hanya dari internet. Koreksi saya jika saya salah.
tusharmakkar08
3
tzdata adalah informasi tentang zona waktu dan waktu musim panas (awal, akhir, zaman) bukan tanggal dan waktu aktual . Tentu saja itu berguna untuk mengetahui cara mencapai waktu lokal Anda berdasarkan pengetahuan tentang zona waktu Anda dan waktu UTC, tetapi Anda masih perlu mengambil yang terakhir dari internet.
Anthon
Anda salah. data zona waktu harus diperbarui (karena ada perubahan yang terjadi setiap saat) TETAPI itu tidak memperbarui dirinya secara otomatis dari internet atau mengatur waktu dari internet.
Ulrich Dangel
@Anthon: Saya telah mengedit jawaban saya sesuai. Terima kasih.
tusharmakkar08
23

Kode kecil yang saya temukan untuk memperbarui waktu Anda jika Anda tidak ingin menginstal apa pun hanya untuk memperbarui tanggal. :)

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
Kabash Prashant
sumber
1
Saya gunakan google.inuntuk mendapatkan waktu saat ini untuk zona waktu saya (INDIA).
Dilawar
Perhatikan trailing Zyang menunjukkan bahwa waktu diberikan dalam zona waktu zulu, jadi tidak perlu manipulasi zona waktu khusus jika zona waktu komputer diatur dengan benar.
user202729
10

Saya menggunakan ini:

sudo ntpd -qg; sudo hwclock -w

pertama beritahu ntpd untuk hanya mengatur waktu dan berhenti setelah itu dengan -q. Juga, jika jam Anda memiliki kesalahan besar, kami perlu memberi tahu ntpd untuk juga menyesuaikan dalam kasus itu dengan -g. Akhirnya tulis jam ke perangkat keras untuk menyimpan perubahan saat me-reboot dengan hwclock -w (-w untuk menyetel hardwareclock ke waktu sistem saat ini, ada perbedaan).

Pedagang perak
sumber
1
saya cenderung melakukan ini dengan tanda "&&" alih-alih titik koma sehingga jika perintah pertama gagal (mis. konektivitas jaringan turun) perintah kedua dihubung pendek
Theophrastus
7

Gunakan ntpdate, ntpd, atau Chrony untuk terhubung ke server NTP.

Ignacio Vazquez-Abrams
sumber
5

Beberapa distribusi mengirimkan tanggal untuk tujuan itu. Penggunaan dasar:

# just query
bash-4.2$ rdate pool.ntp.org
rdate: [pool.ntp.org]   Wed Jun 12 11:05:40 2013

# set system time
bash-4.2$ rdate -s pool.ntp.org
manatwork
sumber
Jauh lebih baik dan lebih mudah daripada ntp
andrewtweber
pool.ntp.orgsekarang menolak koneksi dari rdate. time.nist.govbekerja. Juga setelah Anda mengatur waktu sistem, Anda harus mengatur jam perangkat keras juga dengan menjalankan hwclock -wuntuk mengaturnya ke waktu sistem. Anda kemudian dapat memverifikasi apakah itu benar dengan menjalankanhwclock -r
MatthewLee
5

Setelah beberapa penelitian, saya berakhir dengan ini. Saya juga menerapkannya ke server saya sendiri:

sudo apt-get install ntp
sudo dpkg-reconfigure ntp
ntpq -p

Jika perintah terakhir menunjukkan daftar server yang valid, Anda dapat melakukannya. Perintah ini akan menjalankan satu set algoritma yang cukup kompleks yang akan mengulangi penyimpangan jam Anda, dan menggantinya. Anda akan berakhir dengan jam yang cukup akurat bahkan jika Anda kehilangan koneksi ke server NTP. Namun, perintah itu memang membutuhkan beberapa menit untuk memulai.

Sumber: di sini dan di sini .

Tubbles
sumber
0

Untuk menemukan "rekan" (host Anda dapat meminta) Anda dapat menggunakan ntpq -p.

Jika Anda sudah menjalankan layanan NTP, Anda harus menghentikannya sebelum memperbarui secara manual, misalnya menggunakan sudo service ntp stop.

Sekarang Anda dapat meminta rekan, misalnya menggunakan sudo ntpdate "peer".

l0b0
sumber
0

Menggunakan alat rdate seperti yang disarankan dalam jawaban manatwork , tetapi dengan protokol SNTP -ndan -4opsi IPv4 pada:

# just print synced time, not set
rdate -n -4 -p time-a.nist.gov

# print and set synced time
sudo rdate -n -4 time-a.nist.gov

Alat ini dapat diinstal pada Debian dengan cara ini:

sudo apt-get install rdate
Sersan
sumber
0

Selain balasan Tushar , saya juga harus melakukannya apt-get install ntpdatedi Ubuntu 14.04 saya.

Posting sebagai jawaban karena reputasi tidak cukup untuk berkomentar.

pylipp
sumber
0

Saya juga sedang mencari cara mengatur ulang jam non ntp / ntpd secara berkala. Saya menyukai penguraian tajuk google.com tetapi ternyata tidak berfungsi di ubuntu. Saya pikir ini juga akan bekerja pada Raspberry Pi.

sudo date +"%d %b %Y %T %Z" -s "$(wget -qSO- --max-redirect=0 http://google.com 2>&1 | grep '^  Date:' | cut -d' ' -f 5-)"

Juga merupakan alternatif menggunakan curl bukan wget.

sudo date +"%d %b %Y %T %Z" -s "$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-)"

Diuji pada PI dengan Jaringan Seluler dan hasilnya serupa:

Using host & wget -- RCV: 1324 bytes SND: 581 bytes
Using host & curl -- RCV: 1318 bytes SND: 567 bytes

Catatan saya menggunakan host untuk menyelesaikan google.com ke alamat IP sehingga saya hanya bisa membuka IP untuk durasi perintah ini dengan iptables.

Ron B
sumber