[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cron bei debian



Hallo,

Hans-Dietrich Kirmse <hd.kirmse@gmx.de>:

>>> Die crontab von root wird in /var/spool/cron/crontabs/root gespeichert.
>>
>> ...und sollte *nicht* direkt editiert werden, sondern ausschliesslich
>> mittels crontab.

>Ich möchte das mal an einem andere Beispiel deutlich machen. Vor ein 
>paar Jahren hatte ich ein Script erstellt, welches die Datei 'sudoers' 
>bearbeiten sollte. Auch damals bekam ich den ausdrücklichen Hinweis, 
>dass das mit 'visudo' zu geschehen hat. Nachdem ich durch Recherche und 
>Hinweise endlich herausgefunden hatte, dass 'visudo' 2 Dinge absichert: 
>1. es überprüft vor dem Speichern die Syntax und 2. es verhindert 
>weitere Zugriffe (Locking).

Das Kommando crontab prüft weder die Syntax, noch verhindert es
parallele Zugriffe...

>Deshalb hinsichtlich crontab nochmal meine Frage: was ist es, was der 
>Befehl 'crontab -e' zusätzlich absichert, damit ich das beachten kann?

...sondern der Grund für die Existenz des Kommandos ist, dass ein
User normalerweise keine Rechte hat, um direkt unter
/var/spool/cron/crontabs Dateien anzulegen oder zu editieren.

>Ein Editieren mittels 'crontab -e' ist für mich kaum akzeptabel, obwohl 
>mir ein "visueller Editor" (der aus dem Quota-Paket) sehr wohl zur 
>Verfügung steht, und der sich auch als alternativer Editor kurzzeitig 
>einbinden läßt. Aber schön ist diese Variante nicht, eher das Gegenteil.

Wenn ich dich richtig verstanden habe, läuft dein Skript sowieso als
root. In diesem Fall würde ich die Jobs einfach im Verzeichnis /etc/cron.d
ablegen, und zwar ein File pro Job. Damit kann das Skript neue Jobs
direkt rausschreiben und muss sich nicht um das Parsen vorhandener
Einträge kümmern.

Beachte, dass die Crontabs hier eine leicht andere Syntax haben
(ein zusätzliches Feld für den Usernamen).

Gruß, Harald


Reply to: