Jak pobrać datę z Internetu i ustawić zegar komputera z wiersza poleceń?
switch
rubinu, podczas gdy możesz bezpośrednio ustawić datę za pomocą date -s
(jak pokazano na stronie podręcznika) lub użyć dowolnego z poleceń opisanych poniżej ...
Jak pobrać datę z Internetu i ustawić zegar komputera z wiersza poleceń?
switch
rubinu, podczas gdy możesz bezpośrednio ustawić datę za pomocą date -s
(jak pokazano na stronie podręcznika) lub użyć dowolnego z poleceń opisanych poniżej ...
Odpowiedzi:
Możesz użyć :
sudo dpkg-reconfigure tzdata
do konfigurowania strefy czasowej.
Aby zaktualizować godzinę i datę z Internetu, użyj:
Jeśli ntpd nie jest zainstalowany, użyj jednego z następujących poleceń, aby zainstalować ntpd:
W przypadku RPM:
yum install ntp
W przypadku Debiana:
sudo apt-get install ntp
Powinieneś przynajmniej ustawić następujący parametr w pliku konfiguracyjnym /etc/ntp.conf: server
Na przykład otwórz plik /etc/ntp.conf za pomocą edytora tekstu vi:
# vi /etc/ntp.conf
Znajdź parametr serwera i ustaw go w następujący sposób:
server pool.ntp.org
Zapisz plik i uruchom ponownie usługę ntpd:
# /etc/init.d/ntpd start
Możesz natychmiast zsynchronizować zegar systemowy z serwerem NTP za pomocą następującego polecenia:
# ntpdate pool.ntp.org
* Aby ręcznie ustawić datę i godzinę, użyj następującej składni:
date --set="STRING"
Na przykład ustaw nowe dane na 2 października 2006 18:00:00, wpisz następujące polecenie jako użytkownik root:
# date -s "2 OCT 2006 18:00:00"
LUB
# date --set="2 OCT 2006 18:00:00"
Możesz także uprościć format, używając następującej składni:
# date +%Y%m%d -s "20081128"
Aby ustawić czas, użyj następującej składni:
# date +%T -s "10:13:13"
Gdzie,
10: godzina (hh) 13: minuta (mm) 13: sekunda (ss)
Użyj równoważnika lokalizacji% p dla AM lub PM, wprowadź:
# date +%T%p -s "6:10:30AM"
# date +%T%p -s "12:10:30PM"
from the internet
z tytułu PO.
Znalazłem mały kod, aby zaktualizować Twój czas na wypadek, gdybyś nie chciał niczego instalować tylko po to, aby zaktualizować datę. :)
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
google.in
aby uzyskać bieżący czas dla mojej strefy czasowej (INDIE).
Z
który wskazuje, że czas jest podawany w strefie czasowej zulu, więc nie należy wymagać specjalnej manipulacji strefą czasową, jeśli strefa czasowa komputera jest ustawiona poprawnie.
Używam tego:
sudo ntpd -qg; sudo hwclock -w
najpierw powiedz ntpd, aby po prostu ustawił czas, a potem zatrzymaj za pomocą -q. Ponadto, jeśli twój zegar ma duży błąd, musimy powiedzieć ntpd, aby w tym przypadku również wyregulował za pomocą -g. Na koniec zapisz zegar na sprzęcie, aby zachować zmiany po ponownym uruchomieniu za pomocą hwclock -w (-w do ustawiania zegara sprzętowego na bieżący czas systemowy, jest różnica).
Użyj ntpdate, ntpd lub Chrony, aby połączyć się z serwerem NTP.
Niektóre dystrybucje wysyłają w tym celu datownik . Podstawowe użycie:
# 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
teraz odrzuca połączenia z rdate
. time.nist.gov
Prace. Również po ustawieniu czasu systemowego należy również ustawić zegar sprzętowy, uruchamiając go, hwclock -w
aby ustawić czas systemowy. Następnie możesz sprawdzić, czy jest poprawny, uruchamiająchwclock -r
Po kilku badaniach skończyłem z tym. Zastosowałem go również na własnym serwerze:
sudo apt-get install ntp
sudo dpkg-reconfigure ntp
ntpq -p
Jeśli ostatnie polecenie pokazuje prawidłową listę serwerów, możesz zacząć. Polecenie uruchomi dość złożony zestaw algorytmów, które między innymi będą iterować dryf zegara i zrekompensują je. Otrzymasz dość dokładny zegar, nawet jeśli stracisz połączenie z serwerami NTP. Jednak uruchomienie polecenia wymaga kilku minut.
Aby znaleźć „peerów” (hosty, do których możesz wysłać zapytanie), możesz użyć ntpq -p
.
Jeśli masz już uruchomioną usługę NTP, musisz ją zatrzymać przed ręczną aktualizacją, na przykład za pomocą sudo service ntp stop
.
Teraz możesz wysłać zapytanie do peera, na przykład używając sudo ntpdate "peer"
.
Używanie narzędzia rdate zgodnie z sugestią zawartą w odpowiedzi manatwork , ale z protokołem SNTP -n
i -4
opcjami IPv4 na:
# 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
Narzędzie można zainstalować na Debianie w ten sposób:
sudo apt-get install rdate
Szukałem też sposobu okresowego resetowania zegara w trybie innym niż NTTP / NTTP. Podobało mi się parsowanie nagłówka google.com, ale okazało się, że nie działa na Ubuntu. Myślę, że to zadziała również na 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-)"
Również alternatywne użycie curl zamiast wget.
sudo date +"%d %b %Y %T %Z" -s "$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-)"
Testowane na PI z siecią komórkową, a wyniki są podobne:
Using host & wget -- RCV: 1324 bytes SND: 581 bytes
Using host & curl -- RCV: 1318 bytes SND: 567 bytes
Uwaga: Używam hosta, aby przekształcić google.com w adres IP, dzięki czemu mogę otworzyć tylko ten adres IP na czas trwania tego polecenia w iptables.