Unterschied zwischen / etc / crontab und "crontab -e"

42

Was ist der Unterschied zwischen der Crontab in /etc/crontabund der Crontab, die mit bearbeitet werden kann crontab -e?

jrdioko
quelle

Antworten:

51

Wie Ignacio sagte, /etc/crontabist die Crontab systemweit.

Das Format von /etc/crontabist wie folgt:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'

while crontab -eist pro Benutzer, es ist erwähnenswert, dass -uder Befehl crontab ohne Argument an den aktuellen Benutzer crontab geht. Sie können die crontab -e -u <username>crontab eines bestimmten Benutzers bearbeiten.

Beachten Sie, dass es in einer Pro-Benutzer-Registerkarte kein Benutzerfeld gibt.

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'

Ein Aspekt von Crontabs, der verwirrend sein kann, ist, dass die Wurzel auch eine eigene Crontab hat. zB crontab -e -u rootwird nicht bearbeitet /etc/crontab Siehe cron konfigurieren .

In den meisten Linux-Distributionen werden Crontabs pro Benutzer normalerweise in /var/spool/cron/crontabs/<username>(vixie-cron) gespeichert .

RHEL-basierte Distributionen werden in gespeichert /var/spool/cron/<username>. (cronie)

Skrewler
quelle
Zu Ihrer Information, der oben angegebene Pfad ist falsch: Crontabs pro Benutzer werden in / var / spool / cron / crontabs / <Benutzername> gespeichert (ich habe zweimal versucht, diese einfache Korrektur einzureichen.)
MartyMacGyver
1
... und es ist jetzt korrigiert.
MartyMacGyver
Tatsächlich ist es in /var/spool/cron/rootder benutzerspezifischen crontab von root auf einem RHEL 6-System gespeichert . Ich habe Ubuntu nicht überprüft, aber "typisch" zu sagen, scheint ein bisschen schwierig zu sein.
Wildcard
@Wildcard Ich denke, "typisch" ist ein faires Wort. RHEL Distributionsschiff w / "cronie" (und Anacron, glaube ich), die ihre Gabelung von ISC-Cron / Vixie Cron ist. Ich denke nicht, dass das eine Strecke ist, auf jeden Fall habe ich meine Antwort aktualisiert, um mehr Details einzuschließen.
Skrewler
Um einen schnellen Überblick über die Pfade in verschiedenen Distributionen zu erhalten, suchen Sie path[crontabs]in der CFEngine-Bibliothek nach der Zeichenfolge und überprüfen Sie den Kontext (die vorhergehenden Kontextzeilen sehen z redhat::. B. so aus ). Es gibt mehr Abwechslung als Sie denken; zB SUSE legt sie in /var/spool/cron/tabs. (Das Abstrahieren von Distro-Unterschieden ist einer der Gründe, warum CFEngine ursprünglich erstellt wurde. Daher ist dies häufig eine gute Referenz.)
Wildcard
5

Eine ist die System-Crontab und kann nur von root bearbeitet werden, die andere ist die Benutzer-Crontab und kann von einem Benutzer bearbeitet werden und ist pro Benutzer vorhanden.

Ignacio Vazquez-Abrams
quelle