[gelöst] cron und systemd-timers redundant?

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
IceZwo
Beiträge: 3
Registriert: 14.01.2022 07:52:54

[gelöst] cron und systemd-timers redundant?

Beitrag von IceZwo » 14.01.2022 08:03:46

Hallo Zusammen,

ich hoffe diese Frage ist nicht zu "einfach" ich habe leider nicht wirklich eine Idee wie ich Suchen könnte also mal die Frage hier.

Bei einem frisch installierten Debian 11 ist mir aufgefallen das cron und systemd-timers gleichzeitig betrieben wird.

Code: Alles auswählen

root@Debian-11 ~ # ls -R /etc/cron*
/etc/crontab

/etc/cron.d:
e2scrub_all  mdadm

/etc/cron.daily:
apt-compat  aptitude  dpkg  logrotate  man-db  mdadm

/etc/cron.hourly:

/etc/cron.monthly:

/etc/cron.weekly:

Code: Alles auswählen

root@Debian-11 ~ # systemctl list-timers --all
NEXT                        LEFT           LAST                        PASSED    UNIT                         ACTIVATES
Fri 2022-01-14 08:17:56 CET 54min left     Thu 2022-01-13 08:17:56 CET 23h ago   systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Fri 2022-01-14 17:33:49 CET 10h left       n/a                         n/a       apt-daily.timer              apt-daily.service
Sat 2022-01-15 00:00:00 CET 16h left       Fri 2022-01-14 00:00:56 CET 7h ago    logrotate.timer              logrotate.service
Sat 2022-01-15 00:00:00 CET 16h left       Fri 2022-01-14 00:00:56 CET 7h ago    man-db.timer                 man-db.service
Sat 2022-01-15 06:25:16 CET 23h left       Fri 2022-01-14 06:34:56 CET 48min ago apt-daily-upgrade.timer      apt-daily-upgrade.service
Sun 2022-01-16 03:10:04 CET 1 day 19h left n/a                         n/a       e2scrub_all.timer            e2scrub_all.service
Mon 2022-01-17 01:32:57 CET 2 days left    n/a                         n/a       fstrim.timer                 fstrim.service
Aus meiner Sicht sieht das irgendwie redundant aus es gibt z.b. sowohl einen cronjob für man-db als auch einen timer in systemd.

Meine Frage ist nun wie verhält sich das ganze sollte man eins von beiden deinstallieren oder greifen beide Dienste irgendwie in einander?

Grüße
IceZwo
Zuletzt geändert von IceZwo am 14.01.2022 21:17:12, insgesamt 2-mal geändert.

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: cron und systemd-timers redundant?

Beitrag von JTH » 14.01.2022 08:24:28

Moin und willkommen im Forum. Zu einfach ist deine Frage nicht, deine Beobachtung ist ja völlig richtig.

Ich denke, die periodische Aufgabe für man-db wird so tatsächlich zweimal ausgeführt. Das kann natürlich (bei anderen Aufgaben) unnötig viel Arbeit sein. Ich hab zumindest nix in den Manpages von systemd gefunden, dass Timer übersprungen werden, wenn gleichnamige Cronjobs existieren. Andersherum wird es auch nicht der Fall sein.

Es gibt das Paket Debiansystemd-cron, habe ich auf allen meinen Rechnern installiert. Damit übernimmt systemd die Ausführung von Cronjobs, die tauchen dann auch bei systemctl list-timers auf. Bei mir wird damit man-db(.timer) nur einmal aufgeführt und wohl auch nur einmal ausgeführt. Vorsicht allerdings: Bei Installation von Debiansystemd-cron wird Debiancron deinstalliert, die beiden Pakete verhalten sich laut Beschreibung nicht 100% gleich, z.B. bei Mails bei Fehlern.
Manchmal bekannt als Just (another) Terminal Hacker.

mat6937
Beiträge: 2946
Registriert: 09.12.2014 10:44:00

Re: cron und systemd-timers redundant?

Beitrag von mat6937 » 14.01.2022 09:04:18

JTH hat geschrieben: ↑ zum Beitrag ↑
14.01.2022 08:24:28
..., deine Beobachtung ist ja völlig richtig.

Ich denke, die periodische Aufgabe für man-db wird so tatsächlich zweimal ausgeführt. Das kann natürlich (bei anderen Aufgaben) unnötig viel Arbeit sein.
I. d. R. ist das nicht der Fall, denn das Script in der crontab sollte dann aussteigen, wegen:

Code: Alles auswählen

if [ -d /run/systemd/system ]; then
    # Skip in favour of systemd timer.
    exit 0
fi

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: cron und systemd-timers redundant?

Beitrag von JTH » 14.01.2022 09:31:03

mat6937 hat geschrieben: ↑ zum Beitrag ↑
14.01.2022 09:04:18
I. d. R. ist das nicht der Fall, denn das Script in der crontab sollte dann aussteigen, wegen:
[…]
Ah ja, da hätt man noch gucken sollen. Danke für die Ergänzung :THX:
Manchmal bekannt als Just (another) Terminal Hacker.

IceZwo
Beiträge: 3
Registriert: 14.01.2022 07:52:54

Re: cron und systemd-timers redundant?

Beitrag von IceZwo » 14.01.2022 15:20:31

Könnte ich dann cron einfach deinstallieren oder würde es zu Problemen führen falls Pakete bei der Installation cronjobs anlegen. Dann wäre der Ansatz mit systemd-cron natürlich besser. Nur kann ich mir nicht vorstellen das es den Debian Entwicklern nicht aufgefallen sein soll.

Vielleicht ist es auch nur das Hetzner Image was sich so verhält ich werde mal nochmal eine VM aufsetzen und das zu Prüfen.

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: cron und systemd-timers redundant?

Beitrag von JTH » 14.01.2022 17:46:09

Wenn du Debiansystemd-cron installierst, wird Debiancron automatisch deinstalliert (und umgekehrt). Die beiden Pakete können nicht gleichzeitig installiert sein. Und beide sorgen grundlegend dafür, dass Cronjobs aus anderen Paketen oder manuell angelegt ausgeführt werden.

Wie mat6937 oben noch ergänzt hat, gibt es tatsächlich doch kein doppeltes Ausführen der periodischen Aufgaben. Die Skripte in /etc/cron.daily und den anderen Ordnern enthalten alle eine Abfrage, ob systemd läuft und tun dann nix. Also zumindest die, für die es einen gleichwertigen systemd-Timer gibt.
Manchmal bekannt als Just (another) Terminal Hacker.

IceZwo
Beiträge: 3
Registriert: 14.01.2022 07:52:54

Re: cron und systemd-timers redundant?

Beitrag von IceZwo » 14.01.2022 21:16:11

JTH hat geschrieben: ↑ zum Beitrag ↑
14.01.2022 17:46:09
Wenn du Debiansystemd-cron installierst, wird Debiancron automatisch deinstalliert (und umgekehrt). Die beiden Pakete können nicht gleichzeitig installiert sein. Und beide sorgen grundlegend dafür, dass Cronjobs aus anderen Paketen oder manuell angelegt ausgeführt werden.

Wie mat6937 oben noch ergänzt hat, gibt es tatsächlich doch kein doppeltes Ausführen der periodischen Aufgaben. Die Skripte in /etc/cron.daily und den anderen Ordnern enthalten alle eine Abfrage, ob systemd läuft und tun dann nix. Also zumindest die, für die es einen gleichwertigen systemd-Timer gibt.
ok verstehe - also am besten doch alles beim alten belassen oder komplett auf den neuen systemd-cron Zug aufspringen.

Danke euch beiden für die schnellen antworten.

Antworten