Hi,
bißchen fehlplatziert hier, vllt. . Ich betreibe einen RaspberryPi und
benutze cronjobs die durch die crontab gesteuert werden um periodisch
Dinge zu erledigen. Der Raspi kommt aber eine Stunde zu spät. 'date'
zeigt die richtige Zeit und 'CEST'. Ich denke die cronjobs benutzen
'date'?
Wo muss ich denn da schrauben?
THX
Cheers
Detlef
Detlef _. schrieb:> Ich denke die cronjobs benutzen 'date'?
Ja, aber deine Konsole ist vielleicht gar nicht auf die lokale Zeitzone
"Berlin" eingestellt. Die beiden Befehle, die Harry genannt hat, müssten
das korrigieren.
Danach musst du eventuell die Uhrzeit korrigieren.
Hi,
Reaktion auf
>>sudo apt install tzdata
war 'tzdata is already the newest version'
Dann
sudo dpkg-reconfigure tzdata
war 'Europe/Berlin'
Local time/ UTC, beides richtig
Die crontab ist eingestellt auf 9:43, gestartet wird um 10:43. Soweit
ich weiß werden die cronjobs als 'root' ausgeführt, 'sudo date' gibt
aber auch die richtige Zeit.
Weiß jemend den Reim?
THX
Cheers
Detlef
> Da sollte gar nichts passieren.
bei 'echo $TZ' und 'sudo echo $TZ' kommt jeweils ne Leerzeile
> Du kannst Cronjobs auch als User laufen lassen.> Dazu als User einfach:>
1
> crontab -e
2
>
> Ohne Sudo!!!
Ich hatte 'crontab -e' gemacht, nicht 'sudo crontab -e'. Bei 'sudo
crontab -e' geht ne neue, leere crontab auf. Ich hatte verstanden, dass
cronjobs als root laufen selbst wenn man als user ne crontab aufsetzt
??!!! Ich hab nochmal ne crontab für root aufgesetzt, mal schauen ob die
auch zu spät dran ist.
> Wird dann auch UTC verwendet, oder nur bei root?
Es wird nicht UTC verwendet. Ich habe 1h Versatz, UTC liegt 2h weg.
THX
Cheers
Detlef
Detlef _. schrieb:> Ich hatte verstanden, dass cronjobs als root laufen> selbst wenn man als user ne crontab aufsetzt
Hoffentlich nicht, das wäre eine kolossale Sicherheitslücke.
Moin, -
> Ich hatte verstanden, dass> cronjobs als root laufen selbst wenn man als user ne crontab aufsetzt
Nein. Der Start der Daemons braucht root-Rechte, die Kommandos werden
(in einer art login-shell) fuer den Benutzer ausgefuehrt.
Gruesse
Th.
P.S.: Gehe davon aus, dass Du das Problem bist. Es gibt genug Nutzer,
die Cron benutzen. Zeige die Crontab-Zeile!
Hier die crontab. Die funzt schon, aber eben eine Stunde zu spät.
>>>>>>
P.S.: Gehe davon aus, dass Du das Problem bist. Es gibt genug Nutzer,
die Cron benutzen. Zeige die Crontab-Zeile!
Ja, ich bin immer das Problem, danke nochmal für den Hinweis. Und dass
ich cron nicht verstehe ist eines der kleinsten von mir verursachten
Probleme.
THX
Cheers
Detlef
Moin, -
das war nicht boese gemeint. Aber viele Benutzer benutzen Cron.
Der Benutzername des Kommandos fehlt! Der muss auch beim
Benutzerspezifischen Crontab besetzt werden, z.B. (von aktuellen
Raspian):
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
7
# | | | | |
8
# * * * * * user-name command to be executed
9
17****rootcd/&&run-parts--report/etc/cron.hourly
10
256***roottest-x/usr/sbin/anacron||
Spendier den Benutzernamen und vermutlich wird alles funktionieren.
Gruesse
Th.
Hier Edit:
P.S.: Es kann sein, dass meine Ausfuehrungen nicht ganz richtig sind
(ich habe immer versucht, nur eine system-weite crontab zu haben [wg.
Uebersicht])
Und es scheint auch Unterschiede zwischen Debian und Raspbian zu geben.
Bah!
> Ja, ich bin immer das Problem, danke nochmal für den Hinweis. Und dass> ich cron nicht verstehe ist eines der kleinsten von mir verursachten> Probleme.>> THX> Cheers> Detlef
Thomas W. schrieb:> Der Benutzername des Kommandos fehlt!
Den gibt es nur im "System Cron File" (/etc/crontab), im normalen "Cron
File" nicht. Dein Argument zieht auch nicht für den 1h-Zeitversatz.
Aufrufen und Lesen:
Woran erkennst Du denn, dass die jobs zu spät gestartet werden?
Erstelle mal ein crontab-Eintrag, in dem Du stündlich die Zeit in eine
Datei schreibst: date>zeit.txt
Anhand des Zeitstempels der Datei kann man schauen, wann die erzeugt
wurde.
Mal ein paar Zwischenfragen:
- hat der RPi eine RTC?
- wenn ja, was sagt:
date; cat /proc/driver/rtc*
- wie oft bootet der RPi neu?
- benutzt du irgendwas in der Art hibernate, suspend-to- oder...?
- (wie) bekommst du die Zeit aus dem Internet?
- evt., wenn's nicht zu lang wird:
sudo egrep -i 'cron|ntp' /var/log/syslog | colrm 78
danke!
Moin, -
Pete K. schrieb:> Woran erkennst Du denn, dass die jobs zu spät gestartet werden?>> Erstelle mal ein crontab-Eintrag, in dem Du stündlich die Zeit in eine
1
# For more information see the manual pages of crontab(5) and cron(8)
Danke für das Interesse.
>>>>>
Woran merke ich, dass die Task eine Stunde zu spät läuft? Ich möchte
einen stream Mitschnitt um 8:43 machen, der Mitschnitt ist von 9:43.
>>>>>>
Die Zeile in der crontab
* date >> cron.test
liefert die richtige Zeit Wed 2 Jun 14:26:01 CEST 2021
>>>>>>>>>>>>>
date -u liefert
Wed 2 Jun 12:31:47 UTC 2021
>>>>
sudo date und sudo date -u , alles richtig
echo $TZ liefert die Leerzeile
>>>
pi@raspberrypi:~ $ ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 Jun 1 22:31 /etc/localtime ->
/usr/share/zoneinfo/Europe/Berlin
>>>>> cat /proc/driver/rtc*
cat: '/proc/driver/rtc*': No such file or directory
>>>>>
- wie oft bootet der RPi neu?
- benutzt du irgendwas in der Art hibernate, suspend-to- oder...?
Nie. Nein.
>>>>>
- hat der RPi eine RTC?
Nein, Uralt Raspi
>>>>>
- (wie) bekommst du die Zeit aus dem Internet?
Keine Ahnung. Ich weiß nicht ob ntp läuft. Aber die Zeit ist ja korrekt.
>>>>>>>
- evt., wenn's nicht zu lang wird:
sudo egrep -i 'cron|ntp' /var/log/syslog | colrm 78
wird zu lang
Die eine Stunde Versatz sprechen dafür dass das was mit der Sommerzeit
zum tun hat ?!
THX
Cheers
Detlef
Detlef _. schrieb:> Woran merke ich, dass die Task eine Stunde zu spät läuft? Ich möchte> einen stream Mitschnitt um 8:43 machen, der Mitschnitt ist von 9:43.
Lokal auf einem Medium direkt am Raspi angeschlossen gespeichert, oder
über Netz irgendwo anders?
Stimmt der von dir erzeugte Zeitstempel im Dateinamen mit dem
Zeitstempel in den Dateieigenschaften überein?
Ich gehe davon aus das du am Inhalt der Datei verifiziert hast das die
falsche Stunde aufgezeichnet wurde.
Sascha
Detlef _. schrieb:>> - wie oft bootet der RPi neu?> Nie.
Dann ist es denkbar, dass die Zeitzone nachträglich geändert wurde. Der
cron daemon läuft aber noch mit der ursprünglichen Zeitzone. Solches
Verhalten ist völlig normal, Programme lesen die /etc/timezone und
/etc/localtime nur einmal kurz nach dem Start.
Das stört seltenst, weil niemand freiwillig die Zeitzone ändert. Bei
einem Server auf einem Schiff könnte man in Versuchung kommen, aber
sonst? Allerdings würde ich normal einen Versatz von 2 Stunden erwarten,
aber was ist schon normal. Mit mehrfachen Änderungen schafft man sicher
auch 1 Stunde.
Detlef _. schrieb:
der RaspiPi ist zwar zwei Jahre abgelagert, das macht aber nichts (war
auch mehr verzweifelung).
Der streamripper ist ja auch nichts wesentliches (das vielleicht 3600s
gewartet wurden).
Ich habe keinen Tip mehr. Was Du gezeigt eine ganz normale
Raspbian-Installation, ein solchen Problem habe ich bei cron nie gehabt
(cron guckt anfang einer jeden Minute ob ein job zu starten ist. Cron
laeuft in lokal-time, d.h. sommer/Winter-Zeit gekommt er mit). Deine
Zeitzone ist OK.
Ich muss gestehen: Meine Vermutung dass das Problem vor dem Schirm
sitzt, war falsch. Entschuldigung.
Gruesse
Th.
Bauform B. schrieb:> Detlef _. schrieb:>>> - wie oft bootet der RPi neu?>> Nie.>> Dann ist es denkbar, dass die Zeitzone nachträglich geändert wurde. Der> cron daemon läuft aber noch mit der ursprünglichen Zeitzone. Solches
Das ist des Rätsels Lösung. Ich hatte die TZ geändert, das hatte der
crond nicht mitbekommen. Neu gebootet, Test-crontab aufgesetzt, geht.
Wieder was gelernt, Vorsicht mit den Dämonen bei Änderung
Systemsettings, die kucken nur beim Start.
Vielen Dank allen Beteiligten.
Cheers
Detlef
Detlef _. schrieb:> Neu gebootet, Test-crontab aufgesetzt, geht.
Normalerweise würde man nur den cron neu starten. Andererseits ist
grundsätzlich jeder daemon betroffen. Und dann wieder nur diejenigen,
die die lokale Zeit brauchen. Ein httpd z.B. muss die korrekte Zeit
kennen, aber er benutzt nur GMT. Weil, naja, man will ja auch eine
rekordverdächtige uptime zusammenbekommen ;)
Edit: danke für die Rückmeldung!
Detlef _. schrieb:> Bauform B. schrieb:>> Dann ist es denkbar, dass die Zeitzone nachträglich geändert wurde. Der>> cron daemon läuft aber noch mit der ursprünglichen Zeitzone. Solches>>> Das ist des Rätsels Lösung. Ich hatte die TZ geändert, das hatte der> crond nicht mitbekommen. Neu gebootet, Test-crontab aufgesetzt, geht.
Haette ich auch nicht gedacht, weil (glaube ich) mein Server zwei
Zeitzonenwechsel pro Jahr macht (und nur einmal im Jahr gestartet wird).
There is always something to learn.
Th.
Thomas W. schrieb:> Haette ich auch nicht gedacht, weil (glaube ich) mein Server zwei> Zeitzonenwechsel pro Jahr macht (und nur einmal im Jahr gestartet wird).
Die Umstellung Sommer/Normalzeit hat damit nichts zu tun, die
funktioniert auch ohne Neustart.
Wenn du echte Zeitzonenwechsel machst: auf einem Schiff?
Kontinentalplattenverschiebung? Ein tragbarer Server darf mit in den
Urlaub?