Jak pobrać datę z Internetu i ustawić zegar komputera z wiersza poleceń?
switchrubinu, 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ń?
switchrubinu, 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 internetz 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.inaby uzyskać bieżący czas dla mojej strefy czasowej (INDIE).
Zktó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.orgteraz odrzuca połączenia z rdate. time.nist.govPrace. Również po ustawieniu czasu systemowego należy również ustawić zegar sprzętowy, uruchamiając go, hwclock -waby 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 -ni -4opcjami 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.