Logo

Raspberry Pi: Automatisch immer die richtige Uhrzeit

Raspbian ShellDa der Raspberry Pi keine CMOS-Batterie besitzt, wie man das von einem PC her kennt, „vergisst“ er die Uhrzeit und muss daher über einen Zeitserver aktualisiert werden. Der ntp-Dienst ist bei Raspbian zwar per default installiert, doch er läuft ständig im Hintergrund und belegt damit Systemressourcen. Und davon haben wir beim RasPi ja nichts zu verschenken.

Eine Alternative zum ntp-Daemon ist ntpdate, das man z.B. als regelmäßigen Cronjob aufrufen lassen kann und das sich nach der Zeitsynchronisierung wieder beendet. ntpdate ist zwar mittlerweile „deprecated“, wird also nicht mehr weiterentwickelt. Doch für unseren Zweck tut es einen guten Dienst.

Zuerst sollte die korrekte Zeitzone festgelegt werden, falls noch nicht geschehen:

sudo dpkg-reconfigure tzdata

Nun deinstallieren wir den NTP-Dienst:

sudo apt-get purge ntp

…und installieren ntpdate:

sudo apt-get install ntpdate

Anschließend müssen wir nur noch einen Eintrag in die crontab machen, damit ntpdate regelmäßig automatisch aufgerufen wird. Wir öffnen die crontab zur Bearbeitung:

sudo crontab -e

…und richten einen neuen Cronjob für den Zeitabgleich ein. Wir verwenden dazu den deutschen Zeitserver-Pool. Selbstredend muss euer RasPi dazu mit einer bestehenden Internetverbindung, z.B. per Ethernet-Kabel oder WLAN-Adapter, verbunden sein. Folgende Einträge fügt ihr als neue Zeilen in die crontab hinzu, um die Uhrzeit bei jedem Reboot sowie z.B. alle 6 Stunden automatisch synchronisieren zu lassen:

@reboot ntpdate -s 0.de.pool.ntp.org
0 */6 * * * ntpdate -s 0.de.pool.ntp.org

Abschließend die Datei noch abspeichern mit STRG + O und schließen mit STRG + X.

17 Kommentare

kamal salem

ich hätte eine Frage, und zwar wenn ich internet über LAN oder WLAN funktioniert das super, aber wenn ich internet über GSM Modul habe, bekommt das PI immer falsche Uhrzeit (fast 30 minuten weniger als die richtige Uhrzeit), haben Sie vielleicht Ahnung, warum sowas passiert?

Danke im Vorraus.

MfG

Horster

sudo crontab –e
–e: Datei oder Verzeichnis nicht gefunden

Sicher das der Befehl korrekt ist?

Michael

Der richtige Befehl wäre „sudo crontab -e“ (ja, mit sudo).

LG

Aufschnürer

Danke für den Hinweis. Ja der Befehl ist an sich schon korrekt, allerdings hat mir der Editor aus dem Bindestrich einen Gedankenstrich gemacht. Optisch kaum unterscheidbar, aber beim Kopieren und Einfügen in die Unix-Konsole funktioniert das dann natürlich nicht. Habe es im Text korrigiert.

Folli

Geht ja prima!
Mein Raspi mit Debian Wheezy läuft autark als „Logger“ für eine PV-Anlage (Stichwort Hyperion)
Nun ist es unglücklich, wenn sich die Uhrzeit während des loggens – also bei Licht/Sonne verändert!
Frage: wie muß die Zeile die jetzt alle 6 stunden nachfragt (0 */6 * * * ntpdate -s 0.de.pool.ntp.org) aussehen, wenn nur Nachts um 1 nachgefragt werden soll?

Matthias

Schau doch mal in der Hilfe von Crontab nach:
http://www.raspberrypi.org/documentation/linux/usage/cron.md

Für täglichen Abgleich um 1:00 Uhr (persönlich habe ich 1x täglich um 4 Uhr, da ich nach der Zeitumstellung um 2:00 oder um 3:00 Uhr die neue Zeit am selben Morgen haben möchte.

0 1 * * * root ntpdate -s 0.de.pool.ntp.org

A Rasberry Pi and the god of winds… | Points of Interest

[…] ntpdate instead of ntp to set this information as soon the OS boots. I used some instruction from this page. It’s in german language, though – je […]

Sash

Habe dies ausprobiert, da ich FHEM laufen habe. Wenn die Zeit aus dem Ruder läuft, stimmen die logs nicht mehr und die daraus resultierenden Diagramme.
Was mir auffällt, wenn ich crontab mit sudo ausführe und ohne, werden zwei jobs angelegt. Es sind unterschiedliche dateien (siehe Kopfzeile von nano). Welche ist denn die nach einem reboor ausgeführt wird ?
Die unter sudo angelegt wurde oder die unter dem User angelegt wurde ?

Habe es heute gemerkt, dass nach einem Neustart de PI die Syncronisierung ausblieb !

greez@all
Sash

Bob

Hi,

Umgebung:
Raspbian Jessie

Zeitsynchro: So wie Du hier beschreibst
Effekt: Leider keine Synchronisation nach reboot!

Warum?
Danke!

raspiuser

Könnte daran liegen, daß unter Jessie @reboot in der crontab nicht akzeptiert wird.
Melde Dich als root an, erstelle den Crontab und mach einfach mal: env -i /var/spool/cron/crontab/root
Die darauf folgende Fehlermeldung sagt das bei mir jedenfalls aus.

Maik

Vielen lieben dank,funktioniert super. Vielen vielen vielen dank!

Helios KWL sendet Daten an die Zipabox | splittscheid 2.0

[…] ausbessern, Zeitzone und Zeit richtig abfragen: http://aufschnur.de/2014/raspberry-pi-uhrzeit-automatik/ […]

FreeDee

Hallo,
bei mir erfolgt leider keine Synchronisation @reboot
In der Syslog steht „ntpdate[340]: no servers can be used, exiting“
Wo mus ich suchen?

Raspberry Pi 3 networking issues | Points of Interest

[…] There are several other pages with hints concerning this issue. Meanwhile, after performing several attempts, automatic time sync seems to work. I dropped ntp and openntp in favour of ntpdate according to aufschnur.de. […]

raspi: time via ntp – itgrenade

[…] source: from german page aufschnur.de […]

klugscheißer

ntpdate sollte nur beim booten einmal genutzt werden um die richtige zeit zu setzten, danach hällt sie der standard ntp dienst aktuell

Auerhahn

Leider klappt das nicht. ntpdate bewirkt einfach absolut überhaupt nichts. Weder bei reboot, noch wenn man es einfach so von der Kommandozeile aufruft. Un dntp hält die Zeit auch nicht aktuell. Ich kann die Zeit auf dem Pi nur manuell einstellen. Das ist sehr seltsam.



Sag deine Meinung