Jak ustawić działanie demona ntpd w Manjaro Linux

Zainstalowałem kilka dni temu Manjaro 0.8.7.1 ze środowiskiem Xfce. Wszystko działa świetnie poza wskazaniem systemowego zegara - pokazuje on czas przesunięty o 2 godziny do przodu tj. zamiast np. 10.00 mam 12.00. Polecenie

timedatectl status

zwraca:

Local time: czw 2013-09-19 11:00:23 CEST

  Universal time: czw 2013-09-19 09:00:23 UTC

        RTC time: czw 2013-09-19 09:00:23

        Timezone: Europe/Warsaw (CEST, +0200)

     NTP enabled: yes

NTP synchronized: yes

 RTC in local TZ: no

      DST active: yes

 Last DST change: DST began at

                  nie 2013-03-31 01:59:59 CET

                  nie 2013-03-31 03:00:00 CEST

 Next DST change: DST ends (the clock jumps one hour backwards) at

                  nie 2013-10-27 02:59:59 CEST

                  nie 2013-10-27 02:00:00 CET

Polecenie

ps -A | grep ntpd

daje:

974 ? 00:00:00 ntpd

Synchronizacja czasu z serwerem działa, ale dopiero po 10 minutach od startu systemu. Czy można jakoś skrócić ten czas do np. 1 minuty? Czy to zależy od serwera, z którego się korzysta? Używałem wcześniejszych wersji Manjaro z Xfce i tam nie było problemu z wyświetlanym czasem.

Może dopiero po 10 min od włączenia masz dostęp do sieci? Chociaż nie, pewnie być to zauważył. Ale moim zdaniem nie tędy droga, albo masz źle ustawioną strefę czasową albo źle ustawiony zegar systemowy, stąd ta różnica w zegarze.

Jak widać powyżej, strefa czasowa jest ustawiona na Europe/Warsaw. Co do zegara, to wszystko jest OK w Windows, Ubuntu, Fedora i wszystkich innych - poza tą wersją Manjaro.

Wpisz no polecenie:

hwclock && date

I może jeszcze:

hwclock -D

I wrzuć tutaj wynik tych poleceń. EDIT

ls -l /etc/localtime

To też.

Pokaż jeszcze może :

cat /etc/ntp.conf

Podaj jeszcze wynik:

cat /etc/adjtime

Pamiętam, że też miałem taki problem. Zgodnie z ogólnymi zaleceniami przekonfigurowałem komputer (i równoległego Windowsa), żeby chodził w UTC, ale zegar (w sensie appletu w pasku zadań) automatycznie bierze czas lokalny. Pomogło mi skopiowanie pliku /usr/share/zoneinfo/UTC do /etc/ i zmiana nazwy na localtime (stary plik lepiej zbackupować). Teraz wszystkie trzy zegary (sprzętowy, lokalny i UTC) mają jedną, poprawną, wartość.

Dziękuję Wam za odpowiedzi. Zastosowałem sposób podany przez @Frankfurterium i działa. Teraz mam tak:

[tomek@x54h ~]$ timedatectl status

      Local time: czw 2013-09-19 20:13:49 UTC

  Universal time: czw 2013-09-19 20:13:49 UTC

        RTC time: czw 2013-09-19 20:13:49

        Timezone: n/a (UTC, +0000)

     NTP enabled: yes

NTP synchronized: yes

 RTC in local TZ: no

      DST active: n/a

cat /etc/adjtime

cat: /etc/adjtime: Nie ma takiego pliku ani katalogu

cat /etc/ntp.conf

# With the default settings below, ntpd will only synchronize your clock.

#

# For details, see:

# - the ntp.conf man page

# - http://support.ntp.org/bin/view/Support/GettingStarted

# - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon


# Associate to public NTP pool servers; see http://www.pool.ntp.org/

#server 0.pool.ntp.org

#server 1.pool.ntp.org

#server 2.pool.ntp.org


# Only allow read-only access from localhost

restrict default noquery nopeer

restrict 127.0.0.1

restrict ::1


# Location of drift file

driftfile /var/lib/ntp/ntp.drift


server	127.127.1.0	# local clock

fudge	127.127.1.0 stratum 10	


server tempus1.gum.gov.pl iburst

server tempus2.gum.gov.pl iburst

hwclock && date

czw, 19 wrz 2013, 20:20:47 -0.500569 sekund

czw, 19 wrz 2013, 20:20:47 UTC

hwclock -D

hwclock z pakietu util-linux 2.23.2

Używany interfejs: /dev interface to clock.

Przyjęto, że zegar sprzętowy przechowuje czas UTC.

Oczekiwanie na przeskok zegara...

...wyłapano przeskok zegara

Czas odczytany z zegara sprzętowego: 2013-09-19 20:21:39

Czas zegara sprzętowego: 2013-09-19 20:21:39 = 1379622099 sekund po 1969

czw, 19 wrz 2013, 20:21:39 -0.519012 sekund

ls -l /etc/localtime

-rw-r--r-- 1 root root 118 19.09.2013 20:10 /etc/localtime

Jeszcze raz dziękuję za pomoc.

Wybór czasu UTC lub lokalnego:

timedatectl set-local-rtc true

timedatectl set-local-rtc false

Te komendy generują odpowiednio plik /etc/adjtime.

Z tego co widzę nie miałeś pliku /etc/localtime, utworzyłeś z poradą Frankfurterium , chociaż według Arch Wiki powinien on być tylko symlink, u mnie jest tak:

lrwxrwxrwx 1 root root 33 2012-03-27 /etc/localtime -> /usr/share/zoneinfo/Europe/Warsaw

I działa dobrze, przy czym zegar że jam zegar w localtime a nie UTC. Ale jeśli ci tak działa to dobrze :slight_smile: .

Plik /etc/localtime był wcześniej. To właśnie był symlink do /usr/share/zoneinfo/Europe/Warsaw - i nie działało dobrze. Podmieniłem go plikiem wskazanym przez @Frankfurterium i teraz jest dobrze.

Pewnie związane to z tym będzie że ja mam zegar sprzętowy ustawiony jako localtime:

hwclock z pakietu util-linux 2.23.2

Używany interfejs: /dev interface to clock.

Ostatnia korekta niedokładności wykonana 1337518040 sekund po 1969

Ostatnia kalibracja wykonana 1337518040 sekund po 1969

Zegar sprzętowy przechowuje czas lokalny

Przyjęto, że zegar sprzętowy przechowuje czas lokalny.

U ciebie jest UTC, pamiętam właśnie że miałem podobny problem tylko że rozwiązałem go ustawienie zegara sprzętowego w localtime.

Dla porównania:

http://dug.net.pl/tekst/198/ .

Linux wymaga wielkiej miłości :smiley: Wyobraźcie sobie, że po tych wszystkich manewrach zauważyłem, że 15 minut po włączeniu kompa czas zostaje cofnięty o 2 godziny i zegarek spóźnia się o te 2h :o . Pomogło (tak mi się wydaje, bo już jest 20’ po załadowaniu systemu i czas jest nadal prawidłowy) wyłączenie demona ntpd :smiley:

Podejrzewam, że dałoby się to zrobić w któryś z tych albo innych podobnie cywilizowanych sposobów, ale przeniesienie pliku było pierwsze w Google’u i od razu zadziałało :stuck_out_tongue: