Raspi cronjobs und crontab

OP #6710936
Lesenswert?

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
OP #6712437
Lesenswert?

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
OP #6712626
Lesenswert?

Hi,

Harry L. schrieb:
> Was sagt die Ausgabe von
>
1
> sudo echo $TZ
2
>
> 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
Gast #6712770
Lesenswert?

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!
OP #6712816
Lesenswert?

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
Angehängte Dateien:
Gast #6712825
Lesenswert?

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):
1
# Example of job definition:
2
# .---------------- minute (0 - 59)
3
# |  .------------- hour (0 - 23)
4
# |  |  .---------- day of month (1 - 31)
5
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
6
# |  |  |  |  .---- 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 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
10
25 6    * * *   root    test -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
#6712893
Lesenswert?

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!
Gast #6712906
Lesenswert?

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)
2
#
3
SHELL=/bin/bash
4
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin
5

6
# m h  dom mon dow   command
7
* * *  *   *         /usr/bin/date >> /tmp/cron.test

schreibt jede Minute einen Zeitstempel. Dann weiss man zumindest, wie 
spaet es auf dem Raspberry ist.

Gruesse

Th.
#6712927
Lesenswert?

Auf meinem RPI funktioniert cron. Meine Konfiguration:
1
pi@database:~ $ date
2
Wed Jun  2 13:49:28 CEST 2021
3
pi@database:~ $ date -u
4
Wed Jun  2 11:49:33 UTC 2021
5
pi@database:~ $ echo $TZ
6

7
pi@database:~ $ sudo bash
8
root@database:/home/pi# date
9
Wed Jun  2 13:49:47 CEST 2021
10
root@database:/home/pi# date -u
11
Wed Jun  2 11:49:50 UTC 2021
12
root@database:/home/pi# echo $TZ
13

14
root@database:/home/pi# exit
15
pi@database:~ $ ls -l /etc/localtime
16
lrwxrwxrwx 1 root root 33 Mar 22 17:39 /etc/localtime -> /usr/share/zoneinfo/Europe/Berlin

Wie sieht deine Konfiguration aus?

LG, Sebastian
OP #6713001
Lesenswert?

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
Gast #6713017
Lesenswert?

Moin, -

vielen Dank. Langsam wird das nicht zu verstehen.  Was fuer ein Linux 
hast Du bei dem RaspPi?

bitte mal die kommandos ausfuehren:
1
cat /etc/debian_version
2
uname -a

Das zeigt Dir die Betriebssystem und Kernel-Version an. Sollte so etwas 
ausgeben:
1
pi@raspberry3:~ $ cat /etc/debian_version
2
10.9
3
pi@raspberry3:~ $ uname -a
4
Linux raspberry3 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l GNU/Linux

Gruesse

Th.
OP #6713122
Lesenswert?

Hi,

>>>>>>>>>
pi@raspberrypi:~/rippen $ cat Zeitzeichen.sh
#! /bin/bash
#
fn=`date +%a_%d_%m_%G_%H_%M_zeitzeichen`
streamripper http://www.wdr.de/wdrlive/media/wdr5.m3u -l 1220 -a 
wdr5_$fn -s > /dev/null 2>&1
#pwd >> dlf_$fn.txt
lftp -c "set ssl:verify-certificate no; open -u zeitzeichen,zeitzeichen 
192.168.178.1; put wdr5_$fn.mp3;"
rm -f *.mp3
rm -f ./incomplete/*.mp3
rm -f *.cue
exit 0

Das file pumpe ich über ftp auf mein NAS.

>>>>>>>>>>>>>
bitte mal die kommandos ausfuehren:
pi@raspberrypi:~/rippen $ cat /etc/debian_version
10.1
pi@raspberrypi:~/rippen $ uname -a
Linux raspberrypi 4.19.75+ #1270 Tue Sep 24 18:38:54 BST 2019 armv6l 
GNU/Linux

THX
Cheers
Detlef
#6713168
Lesenswert?

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.
Gast #6713171
Lesenswert?

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.
OP #6713207
Lesenswert?

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
#6713224
Lesenswert?

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!
Gast #6713229
Lesenswert?

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.
#6713236
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren