Chciałbym, aby Ubuntu automatycznie synchronizował mój zegar systemowy z serwerem czasu podczas uruchamiania.
Jednak mój komputer nie jest podłączony do Internetu, dopóki się nie zaloguję (plus 5 - 10 sekund na dokładkę).
Jak mogę to ustawić?
Chciałbym, aby Ubuntu automatycznie synchronizował mój zegar systemowy z serwerem czasu podczas uruchamiania.
Jednak mój komputer nie jest podłączony do Internetu, dopóki się nie zaloguję (plus 5 - 10 sekund na dokładkę).
Jak mogę to ustawić?
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 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.
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ę :)
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):
sudo chmod 4711 update_time.sh
sudo chown root update_time.sh
at
? A jeśli masz zamiar uruchomić się automatycznie ntpdate
, 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:
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