Am Mittwoch, 11. Februar 2004 09:24 schrieb Jan Kesten:
[...]
Fall 1, die /etc/crontab: Hier stehen alle Cronjobs für das
System als solches drin und sie werden alle als Root ausgeführt.
Das sind die verschiedensten Dinge drin. Gut, man könnte diese
ganzen Jobs ohne weiteres auch in die User-Crontab von root
schreiben - nur gehören die ja eigentlich zum System und nicht
zum User "Root" (hier kann man sich streiten, ich find's so etwas
übersichtlicher)
Wozu dann das Feld "user"?
Fall 2, die /etc/cron.d Crontabs: Hier stehen Cronjobs für
einzelne Programme drin (bei mir z.B. exim (Queue-Lauf),
PostgeSQL etc.). Und hier werden die einzelnen Skripte schon als
ein anderer User ausgeführt (bei exim als User "mail" z.B.). Dies
ist u.a. auch nötig, weil im Beispiel von exim die Mailqueue ja
schon etwas öfter als einmal am Tag laufen soll. Auch hier könnte
man natürlich die einzelnen Crontabs wieder zu den Benutzern
packen (allerdings nicht so ohne weiteres als root, da diese hier
ja nicht unbedingt als root laufen sollten/dürfen). Haken an der
Sache ist wieder die Übersichtlichkeit: So stehen alle zu
installieren Paketen gehörenden Conjobs an einer Stelle (wo ich
genau weiss, wo ich suchen kann), andernfalls müsste ich eben
wissen, bei welchen Usern die Crontabs liegen. Aber dies ist
Debian-spezifisch :-)
Und es wird immer unübersichtlicher ;) Wenn Du als User cron-Jobs
ausführen lassen willst, bleibt Dir nur das crontab-Kommando - und
das schreibt nach /var/spool/cron/crontabs/<user>. Weder an
/etc/crontab noch an /etc/cron.d kommst Du als User ran, als root
nur mit einem Editor. Jetzt zähl mal zusammen, an wievielen Stellen
unter Linux / Debian cron-Jobs liegen. Wenn es - wie unter den
kommerziellen Unixen üblich - einheitlich per crontab-Kommando
gemacht würde, hättest Du exakt _1_ Stelle, wo Du nachschauen
musst, nämlich im Verzeichnis /var/spool/cron/crontabs! Und das
würdest Du nicht mal brauchen, weil Dir ein "crontab -l [-u user]"
nämlich alles anzeigen würde. Siehst Du die Jobs aus /etc/cron.d
oder /etc/crontab irgendwo? Nein. Was ist daran übersichtlicher
oder bequemer?