Frage Welchen Benutzer laufen Skripte in den Cron Ordnern? (d. h. cron.daily, cron.hourly, usw.)


Wenn ich ein Skript in /etc/cron.daily auf CentOS lege, mit welchem ​​Benutzer wird es laufen? Laufen sie alle als root oder als Besitzer?


46
2018-03-14 06:45


Ursprung




Antworten:


Sie laufen alle als root. Wenn Sie etwas anderes brauchen, verwenden Sie su im Skript oder fügen Sie einen crontab-Eintrag zur crontab des Benutzers hinzu (man crontab) oder die systemweite crontab (deren Standort ich dir auf CentOS nicht sagen konnte).


45
2018-03-14 06:50





Bearbeiten: Meine Antwort trifft in diesem Fall nicht zu, siehe Zoredaches Kommentar unten. Entschuldigung, alle (besonders Geekosaur). Kyle, beachten Sie, dass Folgendes hilfreich sein kann, wenn Sie ein Skript regelmäßig als Nicht-Root-Benutzer ausführen möchten: mach es einfach durch cron.d anstatt cron. {stündlich, täglich, wöchentlich, monatlich}.

Ich hasse es zu widersprechen, aber ich fürchte, dass Geekosaur nicht ganz richtig ist. Sie laufen als root außer wo anders angegeben. Hier ist ein Teil meiner CentOS-Box /etc/cron.d/munin Datei:

# cron-jobs for munin
MAILTO=root
1-56/5 * * * *     munin /usr/share/munin/munin-limits --force

Beachten Sie, dass in der inhaltlichen Zeile (Zeile 3) ein Benutzername vor der ausführbaren Datei angegeben ist. Dieser bestimmte Cron-Eintrag läuft als Benutzermunin. Wenn Ihr Cron also CentOS 5 (Vixie-Cron-4.1-77) ähnelt, sollten Sie dies ebenfalls tun können.


17
2018-03-14 07:02



Er scheint speziell über cron.daily und cron.weekly zu sprechen und nicht über cron.d / *. - Zoredache
Oh! Danke, Zoredache; Ich sollte die Frage genauer lesen. Noch kein Kaffee! Ich würde es löschen, aber ich denke, es gibt immer noch nützliche Informationen in meiner Antwort - nur nicht für das OP - also bin ich geneigt, es stehen zu lassen. Was denkst du? (Entschuldigung für das falsche Einspringen, Geekosaur). - MadHatter
Geekosaur hat meine grundlegende Frage beantwortet, aber ich habe nie gewusst, wofür der Ordner cron.d eigentlich ist. cron.daily, etc sind ziemlich offensichtlich, ebenso wie crontab. Aber wo sitzt cron.d in all dem? - Kyle MacFarlane
Sie haben bereits begriffen, dass die Verwendung von Verzeichnissen anstelle von einzelnen Dateien zum Speichern von Sammlungen es einfacher macht, einem Paket einen Eintrag hinzuzufügen: Sie können eine Datei einfach in ein Verzeichnis einfügen, anstatt einen komplexen sed-Aufruf zum Bearbeiten von Blöcken zu versuchen von Text in und aus Dateien ... - MadHatter
... Im Fall von Munin muss es alle fünf Minuten einen Job ausführen und nicht als Root. Das ist ein perfektes Beispiel dafür, warum cron. {Stündlich, etc.} Nicht für jeden geeignet ist; Einige Cron-Jobs möchten immer noch eine Frequenz und vielleicht einen Benutzer angeben können, und für sie ist cron.d besser. Andere nicht, und für sie ist cron. {Stündlich, etc.} Einfacher, da sie nur ein Skript anstelle eines Skripts und einen Timing- / Benutzereinstellungs-Wrapper ausgeben. - MadHatter