Istnieją już doskonałe odpowiedzi, które wyjaśniają, jak zainstalować ntpd, aby twój komputer stale zsynchronizował się z internetowymi serwerami czasu, ale chciałem tylko dodać, że domyślnie Ubuntu synchronizuje czas z ntp.ubuntu.com za każdym razem, gdy pojawi się interfejs sieciowy „w górę” (np. po uruchomieniu komputera). Wydaje się, że tak się nie dzieje w twoim przypadku ze względu na sposób łączenia się z Internetem, ale inni czytelnicy nie powinni zakładać, że Ubuntu nie synchronizuje czasu bez zainstalowanego narzędzia NTP.
Odbywa się to za pomocą NTP, dla którego instrukcje są dostępne. Zasadniczo musisz zainstalować demona NTP. Wygląda na to, że dostępnych jest kilka opcji, ale „standardowa” jest w pakiecie ntp. Zgodnie z instrukcjami na połączonej stronie
sudo apt-get install ntp
dostanie wszystko skonfigurowane do synchronizacji z serwerem NTP Ubuntu.
EDYCJA : Brakowało mi „przy starcie”. Ogólnie zaleca się użycie ntpd, aby uzyskać ciągłą synchronizację między systemem a serwerem, ale jeśli naprawdę chcesz synchronizować tylko raz, odpowiedź mfisch wydaje się być tym, czego szukasz.
Myślę, że ogólnie lepiej byłoby, gdyby ntpd zawsze działał i nie mógł nawiązać połączenia, gdy nie był online, co nie jest wcale szkodliwe. Powiedziawszy to, moja metoda powinna również działać;)
mfisch
Nie przeszkadza mi to ciągłe działanie.
Nathan Osman
1
George, po prostu to zrób. Miałem nadzieję odpowiedzieć na twoje „prawdziwe” pytanie, ponieważ najbardziej denerwującą rzeczą na świecie jest zadawanie takich pytań i udzielanie odpowiedzi na wszystkie pytania „dlaczego chcesz to zrobić?”.
mfisch
W przypadku Ubuntu 18.04 obowiązuje rada dotycząca instalacji ntpd. Domyślnie systemd-timesyncd.service zsynchronizuje czas.
ernstkl
9
Jeśli przejdziesz do „System-> Administracja-> Czas i data”, otrzymasz GUI do ustawienia daty / godziny.
Dostępna jest opcja korzystania z serwerów czasu. Jeśli to zaznaczysz, a NTP nie jest zainstalowany, pojawi się pytanie, czy chcesz go zainstalować. Po prostu kliknij „tak” i pozwól mu wykonać swoją pracę :)
Zapomniałem o „starcie”. NTP wykonuje swoje zadania regularnie, co oznacza, że powinieneś synchronizować się za każdym razem, gdy jesteś online ... Ale jedynym sposobem, aby się upewnić, jest użycie jakiegoś skryptu dostarczonego przez mfisch. Teraz szczerze mówiąc: po zsynchronizowaniu nie ma szans, że komputer popsuje swój zegar. Jeśli więc użyjesz domyślnej synchronizacji czasu i pozwolisz, aby zrobiła to w tle, powinieneś spędzać większość czasu bez konieczności robienia czegokolwiek więcej.
Little Jawa,
Czy nie jest oznaczony jako „Data i godzina”?
Firefeather
@Firefeather: może tak być. Nie mam interfejsu w języku angielskim, więc nie mogę powiedzieć;)
Mała Jawa
Ach, głuptasie, zapominając o internacjonalizacji. Mój system en-us nazywa go „Godzina i data”.
Firefeather
6
Możesz to zrobić za pomocą at i ntpdate . at jest prawdopodobnie już zainstalowany, ale ntpdate może nie być. (apt-get install ntpdate).
Najpierw utwórz mały skrypt, który uruchamia ntpdate, nazwijmy go update_time.sh.
#!/bin/bash
ntpdate pool.ntp.org
W pliku .bash_login (który może być potrzebny do utworzenia) dodaj:
at -f ~/update_time.sh now + 1 minute
To powinno zrobić, co chcesz. Możesz zmienić opóźnienie w użyciu na 5 minut, 10 minut itp.
EDYCJA: Właśnie zdałem sobie sprawę, że musisz być rootem, aby uruchomić ntpdate. Musisz ustawić bit SUID w skrypcie update_time.sh, o którym wspomniałem. Możesz to zrobić, uruchamiając to z polecenia (wystarczy uruchomić tylko raz):
Czy możesz wtedy zrobić suid na ntpdate? Prawdopodobnie osiągnęłoby to samo.
mfisch
2
Dlaczego warto korzystać at? A jeśli masz zamiar uruchomić się automatycznie ntpdate, dlaczego po prostu nie zainstalować ntpusługi?
Reinier Post
1
Uwaga: ntpdate nie jest już domyślnie instalowany na Ubuntu (16.04+) i został wycofany na rzecz timedatectl. timedatectl steruje usługą systemyn's timesyncd, która jest domyślnie używana do synchronizacji czasu.
Corey Goldberg,
0
Ponieważ Ubuntu 16.04 timedatectl / timesyncd (które są częścią systemd) zastępuje większość ntpdate / ntp. Zobacz Synchronizacja czasu .
Może być konieczne aktywowanie synchronizacji czasu za pomocą:
$ sudo timedatectl set-ntp on
Jeśli chcesz użyć chrony:
Jeśli potrzebujesz synchronizacji jednorazowej: $ chronyd -q
Jeśli potrzebujesz jednorazowego sprawdzenia czasu, bez ustawiania czasu użyj: $ chronyd -Q
W przypadku ciągłej synchronizacji zalecane rozwiązanie jest chroniczne:
chrony (d)
Demon NTP chronyd oblicza dryft i przesunięcie zegara systemowego i ciągle go dostosowuje, więc nie ma dużych poprawek, które mogłyby prowadzić na przykład do niespójnych logów. Koszt to niewielka moc obliczeniowa i pamięć, ale w przypadku nowoczesnego serwera jest to zwykle nieistotne. Instalacja
Aby zainstalować chrony, z poziomu terminala wpisz:
$ sudo apt install chrony
Może być również konieczne aktywowanie
sudo timedatectl set-ntp on
Aktualizacja: Inną metodą, jeśli powyższe nie działa, jest ustawienie uruchomienia zadania cron$ chronyd -q
Odpowiedzi:
Odbywa się to za pomocą NTP, dla którego instrukcje są dostępne. Zasadniczo musisz zainstalować demona NTP. Wygląda na to, że dostępnych jest kilka opcji, ale „standardowa” jest w pakiecie
ntp
. Zgodnie z instrukcjami na połączonej stroniedostanie wszystko skonfigurowane do synchronizacji z serwerem NTP Ubuntu.
EDYCJA : Brakowało mi „przy starcie”. Ogólnie zaleca się użycie ntpd, aby uzyskać ciągłą synchronizację między systemem a serwerem, ale jeśli naprawdę chcesz synchronizować tylko raz, odpowiedź mfisch wydaje się być tym, czego szukasz.
źródło
Jeśli przejdziesz do „System-> Administracja-> Czas i data”, otrzymasz GUI do ustawienia daty / godziny.
Dostępna jest opcja korzystania z serwerów czasu. Jeśli to zaznaczysz, a NTP nie jest zainstalowany, pojawi się pytanie, czy chcesz go zainstalować. Po prostu kliknij „tak” i pozwól mu wykonać swoją pracę :)
źródło
Możesz to zrobić za pomocą at i ntpdate . at jest prawdopodobnie już zainstalowany, ale ntpdate może nie być. (apt-get install ntpdate).
Najpierw utwórz mały skrypt, który uruchamia ntpdate, nazwijmy go update_time.sh.
W pliku .bash_login (który może być potrzebny do utworzenia) dodaj:
To powinno zrobić, co chcesz. Możesz zmienić opóźnienie w użyciu na 5 minut, 10 minut itp.
EDYCJA: Właśnie zdałem sobie sprawę, że musisz być rootem, aby uruchomić
ntpdate
. Musisz ustawić bit SUID w skrypcie update_time.sh, o którym wspomniałem. Możesz to zrobić, uruchamiając to z polecenia (wystarczy uruchomić tylko raz):źródło
at
? A jeśli masz zamiar uruchomić się automatycznientpdate
, dlaczego po prostu nie zainstalowaćntp
usługi?Ponieważ Ubuntu 16.04 timedatectl / timesyncd (które są częścią systemd) zastępuje większość ntpdate / ntp. Zobacz Synchronizacja czasu .
Może być konieczne aktywowanie synchronizacji czasu za pomocą:
$ sudo timedatectl set-ntp on
Jeśli chcesz użyć chrony:
Jeśli potrzebujesz synchronizacji jednorazowej:
$ chronyd -q
Jeśli potrzebujesz jednorazowego sprawdzenia czasu, bez ustawiania czasu użyj:
$ chronyd -Q
W przypadku ciągłej synchronizacji zalecane rozwiązanie jest chroniczne:
Może być również konieczne aktywowanie
sudo timedatectl set-ntp on
Aktualizacja: Inną metodą, jeśli powyższe nie działa, jest ustawienie uruchomienia zadania cron
$ chronyd -q
źródło