Forum: Mikrocontroller und Digitale Elektronik Raspbian, Linux: aktuelles Datum prüfen


von Karl (Gast)


Lesenswert?

Wer kennt sich mit Raspbian/Linux aus?

Der Raspberry Pi startet, bootet und holt sich Datum/Zeit von einem 
Zeitserver. Das geht meistens ruck-zuck, kann aber hin und wieder rund 
10 Sekunden dauern.

Wie kann ich in einem Pythonskript -  das automatisch gestartet wird - 
prüfen, ob Datum/Zeit vom Zeitserver bereits "eingetroffen" sind?

von Stefan F. (Gast)


Lesenswert?


von Karl (Gast)


Lesenswert?

Stefan U. schrieb:

> Ich glaube, das könnte helfen:
> 
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s1-checking_the_status_of_ntp

Die Befehle kennt Raspbian nicht :(
1
pi@raspberrypi:~$ ntpq -p
2
-bash: ntpq: command not found
3
pi@raspberrypi:~$ chkconfig --list ntpd
4
-bash: chkconfig: command not found
5
pi@raspberrypi:~$

von long don (Gast)


Lesenswert?

Karl schrieb:
> Stefan U. schrieb:
>
>> Ich glaube, das könnte helfen:
>>
> https://access.redhat.com/documentation/en-us/red_...
>
> Die Befehle kennt Raspbian nicht :(
> pi@raspberrypi:~$ ntpq -p
> -bash: ntpq: command not found
> pi@raspberrypi:~$ chkconfig --list ntpd
> -bash: chkconfig: command not found
> pi@raspberrypi:~$


Das funktioniert auch nur, wenn Du selber einen NTP-Server betreibst.
Am einfachsten ergänzt Du das Startscript um eine Ausgabe des Timestamps 
bei Erfolg in eine Datei. Die kannst Du dann prüfen.

von Karl (Gast)


Lesenswert?

long don schrieb:

> Das funktioniert auch nur, wenn Du selber einen NTP-Server betreibst.
> Am einfachsten ergänzt Du das Startscript um eine Ausgabe des Timestamps
> bei Erfolg in eine Datei. Die kannst Du dann prüfen.

Wie heißt das Startscript und wo finde ich es?

von c.m. (Gast)


Lesenswert?

1
ntpdate -s <zeitserver>
2
echo "$?" >/tmp/timesync.dat
im pythonscript prüfen ob die datei /tmp/timesync.dat existiert, und ob 
sie einen wert !=0 enthält.
am besten in einer loop mit max x durchgängen und einem delay 
dazwischen.

von Karl (Gast)


Lesenswert?

c.m. schrieb:
>
1
> ntpdate -s <zeitserver>
2
> echo "$?" >/tmp/timesync.dat
3
>
> im pythonscript prüfen ob die datei /tmp/timesync.dat existiert, und ob
> sie einen wert !=0 enthält.
> am besten in einer loop mit max x durchgängen und einem delay
> dazwischen.

Funktioniert ebenfalls nicht.
1
pi@raspberrypi:~$ ntpdate
2
-bash: ntpdate: command not found

von Kommandozeile vor dem Frühstück für Alle! (Gast)


Lesenswert?

Was flüstert Dir
1
$ man -k ntp
?

von c.m. (Gast)


Lesenswert?

Karl schrieb:
> c.m. schrieb:
>>> ntpdate -s <zeitserver>
>> echo "$?" >/tmp/timesync.dat
>> > im pythonscript prüfen ob die datei /tmp/timesync.dat existiert, und ob
>> sie einen wert !=0 enthält.
>> am besten in einer loop mit max x durchgängen und einem delay
>> dazwischen.
>
> Funktioniert ebenfalls nicht.
> pi@raspberrypi:~$ ntpdate
> -bash: ntpdate: command not found

ich setze vorraus, dass du von alleine drauf kommst openntpd zu 
installieren.

von Arno (Gast)


Lesenswert?

Karl schrieb:
> Wer kennt sich mit Raspbian/Linux aus?
>
> Der Raspberry Pi startet, bootet und holt sich Datum/Zeit von einem
> Zeitserver. Das geht meistens ruck-zuck, kann aber hin und wieder rund
> 10 Sekunden dauern.
>
> Wie kann ich in einem Pythonskript -  das automatisch gestartet wird -
> prüfen, ob Datum/Zeit vom Zeitserver bereits "eingetroffen" sind?

Wenn der Pi startet, startet die Uhr am 01.01.1970 um 0 Uhr UTC 
(https://de.wikipedia.org/wiki/Unixzeit)

Mein Ansatz wäre nun, mit deinem Python-Script die aktuelle Uhrzeit des 
Pi abzufragen, und wenn diese vor 1980 liegt, anzunehmen, dass der 
Rechner noch keine Uhrzeit aus dem Netz bekommen hat.

MfG, Arno

von Karl (Gast)


Lesenswert?

Arno schrieb:

> Wenn der Pi startet, startet die Uhr am 01.01.1970 um 0 Uhr UTC
> (https://de.wikipedia.org/wiki/Unixzeit)

Das ist bei meinem Raspberry Pi B mit dem aktuellen jungfräulichen 
Rasbian nicht der Fall.

-----

Bitte den Thread als geschlossen betrachten. Weitere Antworten werde ich 
nicht beachten. Hier vergeude ich nur meine Zeit. Jede Antwort die ich 
hier bekommen habe ist eine Zumutung.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Karl schrieb:
> Funktioniert ebenfalls nicht.pi@raspberrypi:~$ ntpdate
> -bash: ntpdate: command not found

Dann installiere es doch:
1
sudo apt-get install ntpdate

Oder stellst Du Dich mit Absicht dümmer an, als Du bist? Als Linux-User 
sollte man wenigstens wissen, wie man ein Standard-Programm installiert.

Karl schrieb:
> Das ist bei meinem Raspberry Pi B mit dem aktuellen jungfräulichen
> Rasbian nicht der Fall.

Sondern? Vielleicht 01.01.2000? Warum unterdrückst Du diese Information? 
Die Antwort mit >1980 ist durchaus auf andere Jahreszahlen 
transponierbar - auch wenn man nicht der hellste ist.

Dann prüf halt, ob das Datum >= 2018 ist. Weia.

Karl schrieb:
> Jede Antwort die ich hier bekommen habe ist eine Zumutung.

Die Antworten waren durchaus praxisgerecht und auch durchführbar.

Dein Umgang mit den Antworten ist eher eine Zumutung.

: Bearbeitet durch Moderator
von Kommandozeile vor dem Frühstück für Alle! (Gast)


Lesenswert?

>
> Bitte den Thread als geschlossen betrachten. Weitere Antworten werde ich
> nicht beachten. Hier vergeude ich nur meine Zeit. Jede Antwort die ich
> hier bekommen habe ist eine Zumutung.

Bitte sehr. Gerngeschehen. Danke. Der Nächste bitte.
Beitrag "(Warum) ist das Forum (so) anfängerfeindlich?"

von Stefan F. (Gast)


Lesenswert?

> Mein Ansatz wäre nun, mit deinem Python-Script die aktuelle Uhrzeit des
> Pi abzufragen, und wenn diese vor 1980 liegt, anzunehmen, dass der
> Rechner noch keine Uhrzeit aus dem Netz bekommen hat.

Finde ich gut, ein simpler Ansatz.

von long don (Gast)


Lesenswert?

Ich kenne jetzt das Raspbian nicht, aber wenn das mittlerweile auch 
systemd nutzt, dann geht das mit
1
timedatectl

Dort steht dann explizit, ob schon synchronisiert wurde.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.