Re: cron vergißt regelmäßig seine jobs

From: Peter Ross <Peter.Ross(at)alumni.tu-berlin.de>
Date: Sun, 6 Feb 2005 00:14:48 +1100 (EST)

Hi Daniel,

Daniel Graupner wrote:

> Bei meinem cron (fbsd 5.3) laufen die jobs in /etc/crontab ganz normal
> durch, auch die jobs für root werden ausgeführt. Aller anderen user
> sind bei mir mit nss_ldap angebunden. Einer dieser User hat eine
> crontab angelegt...ein job der alle 5 minuten ausgeführt wird. Das
> funktioniert auch so ca einen Tag gut. Danach wird der job
> ignoriert...steht zwar in der user-crontab aber es wird nix mehr
> ausgeführt. Es kommt erst wieder zur Ausführung wenn man den cron stopt
> und wieder neu startet. Letztens hat er sich auch wieder gefangen als
> ein anderer user ne crontab angelegt hat...bis zum nächsten Tag.

Ich habe eben mal /usr/src/usr.sbin/cron/cron/database.c durchgelesen.
(allerdings 5.2.1-Release - ich hoffe, das macht zu 5.3 nicht so einen
grossen Unterschied)

Die Liste der Crontabs, die durchgeackert werden, wird, wenn ich das
richtig lese, in load_database angelegt und modifiziert. Dabei gibt es
einige Tricks, um es effizienter zu machen, z.B. wird die mtime des
Spooldirectories (/var/cron/tabs) und der User-Cronfiles darin verglichen
und die mit gleicher mtime uebergangen (da sie ja schon vorher
durchgelesen und in die Datenbank uebernommen wurden). Es werden alle
Files in diesem Directory gelesen und u.a. wird mit getpwnam in
process_crontab festgestellt, ob der Nutzer bekannt ist..

Ich wuerde temporaer diese beiden Funktionen ein wenig gespraechiger
machen, um zu sehen, welche Files gesehen werden, welche dann wirklich
angefasst werden und was in der Liste der bekannten Crontabs steht.

Der Code sieht sehr logisch aus, aber wer weiss, wo's klemmt?

Gruss
Peter

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 05 Feb 2005 - 14:15:36 CET

search this site