Jan Trippler schrieb:
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?
ich finde das schon sehr übersichtlich, in /etc/crontab alle Jobs, welche für das System wichtig sind, in /etc/cron.d alle Jobs von installierten Programmen (weiss ich also, wo ich die Jobs der Programme finde und Erweiterungen unterbringen kann) und unter /var/spool/cron/crontabs/ die Jobs, welche von $user angelegt wurden, das können natürlich auch spezielle root-Jobs sein.
Also habe ich doch im Gegensatz zu komerziellen Unixen den besseren Überblick darüber, welche Jobs vom System, von Anwendungen und von $user sind.
Das finde ich gut gelöst und ich bin auf vielen Plattformen zu Hause.
Jan
Reinhold
--
Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/
Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)