Skip to main content

So bearbeiten Sie die Linux-Crontab-Datei zum Planen von Jobs

man Handbuchseite als PDF + ausdrucken - Ubuntu Linux + Linux Mint oder andere Linux Distributionen (April 2025)

man Handbuchseite als PDF + ausdrucken - Ubuntu Linux + Linux Mint oder andere Linux Distributionen (April 2025)
Anonim

Ein Daemon in Linux aufgerufen Cron führt Prozesse in regelmäßigen Abständen aus. Es überprüft bestimmte Ordner auf Ihrem System, ob Skripts in einer Reihe von Ordnern ausgeführt werden können, darunter /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly. Es gibt auch eine Datei namens / etc / crontab.

Skripts in Cron-Ordner einfügen

Sie können Skripts einfach in die entsprechenden Ordner legen, damit diese regelmäßig ausgeführt werden.

Öffnen Sie beispielsweise ein Terminalfenster und führen Sie den folgenden ls-Befehl aus:

ls / etc / cron *

Sie sehen die Liste der Programme oder Skripts, die stündlich, täglich, wöchentlich und monatlich ausgeführt werden.

Das Problem bei diesen Ordnern ist, dass sie etwas vage sind. Zum Beispiel, Täglich bedeutet, dass das Skript einmal täglich ausgeführt wird, Sie haben jedoch keine Kontrolle über die Zeit, zu der das Skript an diesem Tag ausgeführt wird.

Hier kommt die Crontab-Datei ins Spiel.

Durch Bearbeiten der Crontab-Datei können Sie ein Skript oder ein Programm zum genauen Datum und zu der Uhrzeit ausführen, zu der es ausgeführt werden soll.

Berechtigungen

Der Befehl crontab setzt voraus, dass ein Benutzer über Berechtigungen zum Bearbeiten einer Crontab-Datei verfügt. Es gibt grundsätzlich zwei Dateien, die zum Verwalten von Crontab-Berechtigungen verwendet werden:

  • /etc/cron.allow
  • /etc/cron.deny

Wenn die Datei /etc/cron.allow vorhanden ist, muss sich der Benutzer, der die Crontab-Datei bearbeiten möchte, in dieser Datei befinden. Wenn die Datei cron.allow nicht vorhanden ist, es sich jedoch um eine Datei /etc/cron.deny handelt, darf der Benutzer in dieser Datei nicht vorhanden sein. Wenn beide Dateien vorhanden sind, überschreibt die Datei /etc/cron.allow die Datei /etc/cron.deny. Wenn keine Datei vorhanden ist, hängt es von der Systemkonfiguration ab, ob ein Benutzer die Crontab bearbeiten kann.

Der Root-Benutzer kann die Crontab-Datei jederzeit bearbeiten. Sie können entweder den Befehl su verwenden, um zum Root-Benutzer zu wechseln, oder den Befehl sudo, um den Befehl crontab auszuführen.

Bearbeiten der Crontab-Datei

Jeder Benutzer mit den entsprechenden Berechtigungen kann eine eigene Crontab-Datei erstellen. Der cron-Befehl sucht grundsätzlich nach allen crontab-Dateien und führt sie durch.

Um zu prüfen, ob Sie eine Crontab-Datei haben, führen Sie den folgenden Befehl aus:

Crontab -l

Wenn Sie keine Crontab-Datei haben, wird die Meldung "Kein Crontab für" angezeigt "wird angezeigt, andernfalls wird Ihre Crontab-Datei angezeigt (diese Funktionalität unterscheidet sich von System zu System, manchmal wird überhaupt nichts angezeigt und manchmal wird" Diese Datei nicht bearbeiten "angezeigt).

Führen Sie den folgenden Befehl aus, um eine Crontab-Datei zu erstellen oder zu bearbeiten:

Crontab -e

Die Datei, die geöffnet wird, enthält viele Informationen, aber der Schlüsselteil ist das Beispiel unmittelbar vor dem Ende des Kommentarbereichs (Kommentare sind durch Zeilen gekennzeichnet, die mit # beginnen).

# m h dom mon dow-Befehl

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Es gibt 6 Informationen, die in jede Zeile der Crontab-Datei passen:

  • Die Minute des Tages, an dem der Befehl ausgeführt werden soll (m)
  • Die Stunde des Tages, zu der der Befehl ausgeführt werden soll (h)
  • Der Tag des Monats, in dem der Befehl ausgeführt werden soll (dom)
  • Der Monat, in dem der Befehl ausgeführt werden soll (mon)
  • Der Wochentag, an dem der Befehl ausgeführt werden soll (dow)
  • Der Befehl

Für jedes Element (außer für den Befehl) können Sie ein Platzhalterzeichen angeben. Schauen Sie sich die folgende Beispiel-Crontab-Zeile an:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Bei 30 Minuten, 18 Stunden und an jedem Tag, Monat und Wochentag verschlüsselt und kopiert dieser Crontab-Eintrag das Basisverzeichnis in den Ordner / var / backups.

Führen Sie den folgenden Befehl aus, um einen Befehl zu erhalten, der jede Stunde nach 30 Minuten ausgeführt wird:

30 * * * * Befehl

Führen Sie den folgenden Befehl aus, um einen Befehl zu erhalten, der jede Minute nach 18.00 Uhr ausgeführt wird:

* 18 * * * Befehl

Sie müssen daher beim Einrichten Ihrer Crontab-Befehle vorsichtig sein.

Zum Beispiel:

* * * 1 * Befehl

Dieser Befehl wird jede Minute zu jeder vollen Stunde im Januar ausgeführt.

Um einen Befehl am 1. Januar um 5 Uhr morgens auszuführen, würden Sie den folgenden Befehl in die Crontab-Datei eingeben:

0 5 1 1 * Befehl

So entfernen Sie eine Crontab-Datei

In den meisten Fällen möchten Sie die Crontab-Datei nicht entfernen. Möglicherweise möchten Sie jedoch einige Zeilen aus der Crontab-Datei entfernen.

Wenn Sie jedoch die Crontab-Datei Ihres Benutzers entfernen möchten, führen Sie den folgenden Befehl aus:

Crontab -r

Eine sicherere Methode ist, den folgenden Befehl auszuführen:

Crontab -i

Das Betriebssystem fordert eine Überprüfung an, bevor die Crontab-Datei entfernt wird.