İnternetten saat ve tarihi nasıl ayarlarım?


34

Tarihi İnternetten nasıl alabilirim ve bilgisayarımın saatini komut satırından nasıl ayarlarım?


3
Düşüşleri anlamıyorum. Basit sorular, toplumu güçlü yapan şeydir. Örneğin, bunu görün
Mohsen

3
Bir sorunun aşağı okunun üzerine fareyle geldiğimde şunu görüyorum: "Bu soru herhangi bir araştırma çabası göstermiyor; belirsiz veya kullanışlı değil". İlkine (ne bulduğuna dair bir gösterge yok), ikincisine (hangi platform üzerinde çalıştığınıza dair hiçbir gösterge yok) ve bunun neden komut satırı olması gerektiğine (normal zaman arka planına bakmak yerine) dayalı olarak sorunuzu küçümsemeye çalışırdım. ) ve üçüncüsü (çoğu * nix kullanıcısı varsayılan olarak kurulu bir zaman programı içerecektir).
Anthon,

+1 Olumsuz oyları da anlamıyorum, çünkü bu daha önce beni birçok kez rahatsız eden bir şeydi ve bu belirli tema hakkında özlü ve yararlı bir şey bulmak imkansız görünüyor.
l0b0

@Mohsen Oyunda oy kullanmadı ama bağlantınız ile ilgili sorudaki fark, yaklaştığınız switchtarihi date -s( doğrudan mankede gösterildiği gibi) ayarlayabilmeniz veya aşağıda açıklanan komutlardan herhangi birini kullanabilmeniz durumunda yakutta olmamasıdır ...
Ulrich Dangel

1
@Anthon'a katılmıyorum: bu soru BusyBox'a sahip küçük bir cihazla ilgili, genel tavsiyenin mutlaka NTP kullanmasını zorunlu
kılmıyor.

Yanıtlar:


29

Kullanabilirsiniz :

sudo dpkg-reconfigure tzdata

saat diliminizi yapılandırmak için

İnternetten saat ve tarihi güncellemek için aşağıdakileri kullanın:

Yüklemek

Eğer ntpd kurulu değilse ntpd'yi kurmak için aşağıdaki komutlardan birini kullanın:

  • RPM tabanlı için:

    yum install ntp 
    
  • Debian tabanlı:

    sudo apt-get install ntp
    

Yapılandırma

En azından /etc/ntp.conf config dosyasında aşağıdaki parametreyi ayarlamalısınız: server

Örneğin, vi metin düzenleyicisini kullanarak /etc/ntp.conf dosyasını açın:

  # vi /etc/ntp.conf

Server parametresini bulun ve aşağıdaki gibi ayarlayın:

  server pool.ntp.org

Dosyayı kaydedin ve ntpd hizmetini yeniden başlatın:

  # /etc/init.d/ntpd start

Aşağıdaki komutu kullanarak sistem saatini hemen bir NTP sunucusuyla senkronize edebilirsiniz:

  # ntpdate pool.ntp.org

* Saati ve tarihi ayarlamak için aşağıdaki sözdizimini manuel olarak kullanın:

 date --set="STRING"

Örneğin, yeni verileri 2 Ekim 2006 18:00:00 olarak ayarlayın, aşağıdaki komutu root kullanıcısı olarak yazın:

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

VEYA

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

Aşağıdaki sözdizimini kullanarak da biçimi basitleştirebilirsiniz:

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

Saati ayarlamak için aşağıdaki sözdizimini kullanın:

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

Nerede,

10: Saat (saat) 13: Dakika (mm) 13: Saniye (saniye)

% P yerel ayarının AM veya PM'ye eşdeğerini kullanın, şunu girin:

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

# date +%T%p -s "12:10:30PM"

Tarih bilgisi tüm geçerli görünse de, bu gereksinimi almaz from the internetdan başlık hesap her yerde içine OP'nin.
Anthon,

Tzdata (zaman dilimi verileri) paketinin verileri yalnızca internetten senkronize ettiğini düşünüyorum. Yanlışım varsa düzelt .
tusharmakkar08

3
tzdata , gerçek tarih ve saat değil, saat dilimleri ve gün ışığından yararlanma saati (başlangıç, bitiş, dönem) hakkında bilgilerdir . Elbette bu, yerel saatinize, saat diliminize ve UTC saatinize dayanarak nasıl edineceğinizi bilmek kullanışlı bir yöntemdir, ancak ikincisini internetten almanız gerekir.
Anthon

Hatalısınız. saat dilimi verilerinin güncellenmesi gerekir (sürekli yapılan değişiklikler olduğu için) AMA İnternetten otomatik olarak güncelleme yapmaz NOR İnternetten saati ayarlar.
Ulrich Dangel

@Anthon: Yanıtımı buna göre düzenledim. Teşekkür Ederim.
tusharmakkar08

22

Tarihi güncellemek için bir şey yüklemek istemiyorsanız zamanınızı güncellediğim küçük bir kod buldum. :)

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

1
google.inSaat dilimimin (INDIA) geçerli saatini almak için kullanıyorum .
Dilawar

Sondaki Not Zbilgisayar saat dilimi doğru ayarlanırsa, özel bir zaman dilimi manipülasyon gerekli bu yüzden, zaman zuluca zaman diliminde verilir gösterir.
user202729

9

Bunu kullanıyorum:

sudo ntpd -qg; sudo hwclock -w

ilk önce ntpd'ye sadece zamanı ayarlamasını ve bundan sonra -q ile durmasını söyle. Ayrıca, saatinizin büyük bir hatası olması durumunda ntpd'ye -g ile ayarlamanız gerektiğini söylememiz gerekir. Sonunda hwclock -w ile yeniden başlatırken yapılan değişiklikleri korumak için saati donanıma yazın (-ww donanım kilidini geçerli sistem saatine ayarlamak için, bir fark var).


1
Bunu noktalı virgül yerine "&&" ile yapma eğilimindeyim, böylece ilk komut başarısız olursa (örneğin ağ bağlantısı kesilirse) ikinci komut kısa devre
Theophrastus


5

Bazı dağıtımlar bu amaç için gönderim tarihidir . Temel kullanım:

# 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


pool.ntp.orgşimdi bağlantıları reddediyor rdate. time.nist.govEserleri. Ayrıca sistem saatini ayarladıktan sonra, sistem saatini ayarlamak için koşarak donanım saatini de hwclock -wayarlamanız gerekir. Daha sonra çalıştırarak doğru olduğunu doğrulayabilirsinizhwclock -r
MatthewLee

5

Biraz araştırmadan sonra bununla sonuçlandım. Ayrıca kendi sunucuma da uyguladım:

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

Son komut geçerli bir sunucu listesi gösteriyorsa, gitmeniz iyi olur. Komut, saat kaymalarınızı yineleyecek ve diğerlerini telafi edecek oldukça karmaşık bir algoritma seti çalıştıracaktır. NTP sunucularına olan bağlantıyı kaybedersiniz bile son derece doğru bir saatle biteceksiniz. Ancak, komutun başlaması için birkaç dakika gerekir.

Kaynak: burada ve burada .


0

"Eşler" bulmak için (sorgulayabileceğiniz ana bilgisayarları) kullanabilirsiniz ntpq -p.

Zaten çalışan bir NTP servisiniz varsa, örneğin kullanarak, el ile güncelleme yapmadan önce onu durdurmanız gerekir sudo service ntp stop.

Şimdi, örneğin kullanarak bir eş sorgulayabilirsiniz sudo ntpdate "peer".


0

Çalışma aracının cevabında önerildiği gibi rdate aracını kullanmak , ancak SNTP protokolü ve IPv4 seçenekleri:-n-4

# 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

Araç Debian’a şu şekilde yüklenebilir:

sudo apt-get install rdate

0

Tushar'ın cevabına ek olarak , apt-get install ntpdateUbuntu 14.04'ü de yapmak zorunda kaldım .

Cevap olarak ün yapmak, yorum yapmak için yeterli değil.


0

Ayrıca periyodik olarak saati sıfırlamanın ntp / ntpd olmayan bir yolunu arıyordum. Ben google.com başlık ayrıştırma sevdim ama ubuntu üzerinde işe yaramadı bulundu. Bunun bir Ahududu Pi ile de çalışacağını düşünüyorum.

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

Ayrıca wget yerine curl kullanarak bir alternatif.

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

Hücresel Şebeke ile PI üzerinde test edilmiştir ve sonuçlar benzerdir:

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

Not google.com'u bir IP adresine çözmek için host kullanıyorum, böylece bu komutu sadece iptables ile açabiliyorum.

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.