Wie kommt es, dass sich crontab -e von weniger / etc / crontab unterscheidet?
10
Ich bin ziemlich neu in Unix und Cron. Ich wollte gerade versuchen, Cron zu einer vorhandenen Cron-Datei hinzuzufügen. Ich habe gelesen, du könntest das machen crontab -e. Das Verwirrende für mich ist nur, dass crontab -eandere Cron / Befehle angezeigt werden als less /etc/crontab- wie kommt es? Welches ist der richtige Weg / die richtige Datei zum Bearbeiten?
Obwohl die Antwort von @X Tian Informationen zu den verschiedenen Dateien für crontab enthält, sind die wesentlichen Informationen zu Ihrer Frage folgende:
crontab -ebearbeitet die crontab-Datei des Benutzers (gespeichert im /var/spool/cron/crontabs/Verzeichnis auf aktuellen Debian-Systemen, aber YMMV) oder erstellt eine neue und nicht /etc/crontab. Ähnliches gilt für crontab -l(Crontab-Datei auflisten) und crontab -r(Crontab-Datei entfernen).
Für alle Cron-Jobs, die unter dem Konto eines Benutzers ausgeführt werden sollen, sollten Sie verwenden crontab -e. Für Systemjobs sollten Sie eine Datei unter hinzufügen /etc/cron.d, falls vorhanden. unter /etc/cron.{hourly|daily|weekly|monthly}(aber diese dürfen nicht wie ein Paketname benannt werden!), wenn dies Ihrem Zweck entspricht; oder fügen Sie eine Zeile hinzu /etc/crontab. Beachten Sie jedoch, dass dies /etc/crontabmöglicherweise durch ein Systemupdate überschrieben wird.
@Stephane Chazelas Vielen Dank für die Klarstellung mit Ihrer Bearbeitung. Das /var/spool/cron/Verzeichnis ist eine Linux-Spezialität (siehe Dateihierarchiestandard ) und der Speicherort kann auf anderen Systemen als einem aktuellen Debian variieren.
Dubu
3
Sie möchten wirklich die Handbuchseiten lesen man cronundman crontab
Hier ist ein Auszug, der Ihre Frage abdeckt. Vonman cron
HINWEISE cron durchsucht seinen Spool-Bereich (/ var / spool / cron / crontabs) nach crontab-Dateien (die nach Konten in / etc / passwd benannt sind); gefundene Crontabs werden in den Speicher geladen. Beachten Sie, dass auf crontabs in diesem Verzeichnis nicht direkt zugegriffen werden darf - der Befehl crontab sollte verwendet werden, um auf sie zuzugreifen und sie zu aktualisieren.
cron also reads /etc/crontab, which is in a slightly different format
(see crontab(5)). Additionally, cron reads the files in /etc/cron.d:
it treats the files in /etc/cron.d as in the same way as the
/etc/crontab file (they follow the special format of that file, i.e.
they include the user field). However, they are independent of
/etc/crontab: they do not, for example, inherit environment variable
settings from it. The intended purpose of this feature is to allow
packages that require finer control of their scheduling than the
/etc/cron.{daily,weekly,monthly} directories to add a crontab file to
/etc/cron.d. Such files should be named after the package that supplies
them. Files must conform to the same naming convention as used by run-
parts(8): they must consist solely of upper- and lower-case letters,
digits, underscores, and hyphens. If the -l option is specified, then
they must conform to the LSB namespace specification, exactly as in the
--lsbsysinit option in run-parts.
Sie sollten angeben, von welcher Cron-Implementierung und welcher Version auf welchem Betriebssystem und von welcher Version Sie diese zitieren. cronist etwas, das von Betriebssystem zu Betriebssystem sehr unterschiedlich ist, und bei einigen können Sie zwischen mehreren Implementierungen wählen.
/var/spool/cron/
Verzeichnis ist eine Linux-Spezialität (siehe Dateihierarchiestandard ) und der Speicherort kann auf anderen Systemen als einem aktuellen Debian variieren.Sie möchten wirklich die Handbuchseiten lesen
man cron
undman crontab
Hier ist ein Auszug, der Ihre Frage abdeckt. Von
man cron
quelle
cron
ist etwas, das von Betriebssystem zu Betriebssystem sehr unterschiedlich ist, und bei einigen können Sie zwischen mehreren Implementierungen wählen.