Envato Elements - pobieraj co chcesz, ile chcesz

Niedawno pisałem o błędzie „RequestTimeTooSkewed” podczas (automatycznej, na szczęście skrypt to wykrył) próby zamontowania zasobu sieciowego S3 na Raspberry Pi, a przyczyną tego była różnica czasu na serwerze S3 i Raspberry Pi – skorygowałem, i niby wszystko OK.

Dziś ponownie dostałem e-mail, że skrypt napotkał błąd – od razu skojarzyłem, że wczoraj była kilku(nasto) minutowa przerwa serwisowa w zasilaniu Raspberry Pi, więc pewnie ponownie czas nie został zsynchronizowany, a więc nie zadziałała prawidłowo usługa NTP.

NTP (Network Time Protokol)

Z racji tego, że Raspberry Pi nie ma zegara czasu rzeczywistego (gdy to potrzebne można dodać odpowiedni moduł RTC i podłączyć po GPIO), to czas jest synchronizowany przez internet, za pomocą protokołu/usługi  NTP.

Wprawdzie wspomaga Malinę jeszcze tzw. „fałszywy zegar sprzętowy” (fake-hwclock), ale sprawdza się to względnie przy restartach – natomiast nic nie da przy wyłączeniu systemy na dłuższy czas (usługa fake-hwclock zapisuje czas do pliku i podczas ponownego startu go odczytuje).

Czas systemowy – podejście pierwsze

Sprawdzanie czasu zacząłem od polecenia:

[email protected] ~ $ date
Sat 28 Nov 10:02:32 CET 2015

I pewnie nie byłoby to dziwne, gdyby nie to, że w tym momencie była 12:02:32, a więc 2 godziny później niż pokazał serwer/system.

Sprawdziłem ustawienia strefy czasowej:

[email protected] ~ $ cat /etc/timezone
Europe/Warsaw

Wyglądało OK, ale na wszelki wypadek postanowiłem jeszcze raz ustawić odpowiednią strefę czasową:

sudo dpkg-reconfigure tzdata

Sprawdziłem również ustawienia w pliku konfiguracyjnym NTP (Network Time Protokol):

sudo nano /etc/ntp.conf

Oraz zrestartowałem usługę:

sudo /etc/init.d/ntp restart

A gdy to nie pomogło samą Malinę.

Wymuszenie synchronizacji czasu

Kolejnym krokiem było skorzystanie z narzędzia „ntpdate”, i wymuszenie aktualizacji czasu w systemie (wiem, mogłem ustawić ręcznie, ale chodziło również o test samej usługi NTP):

sudo ntpdate -u tempus1.gum.gov.pl

O ile NTP prawdopodobnie macie w systemie, to pakietu „ntpdate” możecie nie mieć, a więc trzeba go zainstalować:

sudo apt-get install ntpdate

Ew. NTP – jakbyście jednak nie mieli:

sudo apt-get install ntp

Po tej operacji szybkie sprawdzenie czasu w systemie:

[email protected] ~ $ date
Sat 28 Nov 12:05:21 CET 2015

Czas OK, więc i zamontowanie zasobu S3 przebiegło bez problemu…

Czas systemowy – podejście drugie

Z racji tego, że nie bardzo miałem czas na jakieś dodatkowe testy/analizy – o całej sprawie zapomniałem, zwłaszcza, że przez kolejne dni wyglądało na to, że wszystko działa prawidłowo.

Aż do dzisiejszego poranka, gdy otrzymałem e-mail o którym wspomniałem w jednym z pierwszych akapitów tego wpisu.

Szybkie sprawdzenie czasu – nawet nie sprawdzałem błędu s3fs, bo w połączeniu z przerwą w zasilaniu byłem praktycznie pewien, że ponownie będzie to problem z czasem – i miałem potwierdzenie:

[email protected] ~ $ date
Sat 5 Dec 10:02:32 CET 2015

A na zegarze obok 10:24:35, więc różnica dość spora, i zarazem pokrywająca się z około 20 minutową przerwą techniczną.

Status usługi NTP

Tym razem postanowiłem zacząć od sprawdzenia statusu usługi NTP za pomocą polecenia:

timedatectl status

W odpowiedzi otrzymałem m.in. takie informacje:

Local time: Sat 2015-12-05 10:08:38 CET
Universal time: Sat 2015-12-05 09:08:38 UTC
RTC time: n/a
Time zone: Europe/Warsaw (CET, +0100)
NTP enabled: no
NTP synchronized: yes

Co istotne – synchronizacja NTP była aktywna, ale sama usługa nie, a więc postanowiłem tutaj szukać rozwiązania problemu.

Aktywacja NTP

Ponowną (bo kiedyś działała) aktywację usługi NTP przeprowadziłem za pomocą polecenia:

sudo timedatectl set-ntp true

Po czym ponownie sprawdziłem status usługi:

[email protected] ~ $ timedatectl status
Local time: Sat 2015-12-05 10:32:05 CET
Universal time: Sat 2015-12-05 09:32:05 UTC
RTC time: n/a
Time zone: Europe/Warsaw (CET, +0100)
NTP enabled: yes
NTP synchronized: no

Jak widać tym razem – dla odmiany – usługa NTP jest aktywna, za to nieaktywna jest sama synchronizacja…

Na szczęście to można zmienić za pomocą jednego polecenia, które ustawi nam ponownie już ustawioną strefę czasową:

sudo timedatectl set-timezone Europe/Warsaw

Po tym poleceniu jeszcze raz sprawdzam status usługi NTP:

[email protected] ~ $ timedatectl status
Local time: Sat 2015-12-05 10:33:21 CET
Universal time: Sat 2015-12-05 09:33:21 UTC
RTC time: n/a
Time zone: Europe/Warsaw (CET, +0100)
NTP enabled: yes
NTP synchronized: yes

Jest dobrze…

Wyłączenie testowe

Ale by i tym razem zbyt pochopnie nie uznać, że wszystko jest OK, postanowiłem testowo wyłączyć Raspberry Pi na kilkanaście minut, i sprawdzić czas w systemie po ponownym uruchomieniu:

[email protected] ~ $ date
Sat 5 Dec 11:15:52 CET 2015

Na szczęście tym razem czas w systemie zgadzał się z czasem na zegarze obok… :-)

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Janusz i Janusz zapisali się do Newslettera WebInsider.pl i... sobie chwalą